Accelerating Wright-Fisher Forward Simulations on the Graphics Processing Unit.

Accelerating Wright-Fisher Forward Simulations on the Graphics Processing Unit.
复制标题

DOI:
10.1534/g3.117.300103
复制
发表时间:
2017-09-07
期刊:
G3 (Bethesda, Md.)
影响因子:
--
通讯作者:
Lawrie DS
Lawrie DS
中科院分区:
其他
文献类型:
--
作者:
Lawrie DS

文献摘要

被引文献

相似文献

前向Wright-Fisher模拟在模拟复杂的人口统计和选择场景方面具有强大的能力,但在中央处理器单元(CPU)上执行缓慢,从而限制了其实用性。然而,单轨迹Wright-Fisher前向算法具有极高的并行性,其中许多步骤是所谓的“令人尴尬的并行”,由大量相互独立的单独计算组成,因此可以同时执行。现代图形处理单元(gpu)和旨在利用这些处理器固有的并行特性的编程语言的兴起,使研究人员能够极大地加快许多具有如此高算术强度和内在并发性的程序。所提出的GPU优化Wright-Fisher模拟,或简称“GO Fish”,可用于模拟任意选择和人口统计场景,同时运行速度比CPU上的串行模拟快250倍。即使是普通的GPU硬件也可以实现超过两个数量级的令人印象深刻的加速。随着模拟速度的加快,人们不仅可以对先前估计的参数进行快速参数自举,还可以使用模拟结果根据实际多态性数据计算人口统计和选择模型的可能性和汇总统计,所有这些都不限制可以建模的人口统计和选择场景,也不需要近似于单位点前向算法以提高效率。此外,由于该模拟中使用的许多并行编程技术可以应用于种群遗传学中重要的其他计算密集型算法,GO Fish为未来研究加速进化计算提供了一个令人兴奋的模板。GO Fish是平行PopGen包的一部分,可在http://dl42.github.io/ParallelPopGen/获得。
Forward Wright–Fisher simulations are powerful in their ability to model complex demography and selection scenarios, but suffer from slow execution on the Central Processor Unit (CPU), thus limiting their usefulness. However, the single-locus Wright–Fisher forward algorithm is exceedingly parallelizable, with many steps that are so-called “embarrassingly parallel,” consisting of a vast number of individual computations that are all independent of each other and thus capable of being performed concurrently. The rise of modern Graphics Processing Units (GPUs) and programming languages designed to leverage the inherent parallel nature of these processors have allowed researchers to dramatically speed up many programs that have such high arithmetic intensity and intrinsic concurrency. The presented GPU Optimized Wright–Fisher simulation, or “GO Fish” for short, can be used to simulate arbitrary selection and demographic scenarios while running over 250-fold faster than its serial counterpart on the CPU. Even modest GPU hardware can achieve an impressive speedup of over two orders of magnitude. With simulations so accelerated, one can not only do quick parametric bootstrapping of previously estimated parameters, but also use simulated results to calculate the likelihoods and summary statistics of demographic and selection models against real polymorphism data, all without restricting the demographic and selection scenarios that can be modeled or requiring approximations to the single-locus forward algorithm for efficiency. Further, as many of the parallel programming techniques used in this simulation can be applied to other computationally intensive algorithms important in population genetics, GO Fish serves as an exciting template for future research into accelerating computation in evolution. GO Fish is part of the Parallel PopGen Package available at: http://dl42.github.io/ParallelPopGen/.