副主编:Anna Tramontano
JoséColmenares、Jesüs Ortiz、Walter Rocchia、GPU线性和非线性Poisson–DelPhi的Boltzmann解算器模块,生物信息学,第30卷,第4期,2014年2月,第569-570页,https://doi.org/10.1093/bioinformatics/btt699
总结:在这项工作中,我们提出了基于CUDA的GPU实现泊松-玻尔兹曼方程求解器,在线性和非线性版本中,使用双精度。采用有限差分格式,并使其适用于GPU体系结构。生成的代码与生物分子DelPhi的静电软件接口,该软件在计算生物学界广泛使用。该算法已使用CUDA实现,并在几个具有代表性的生物兴趣案例上进行了测试。对实现和性能测试结果的详细信息进行了说明。在线性和非线性情况下,均实现了约10倍的加速。
可用性和实施:该模块是开源的,可在http://www.electrostaticszone.eu/index.php/downloads.
联系人: walter.rocchia@iit.it
补充信息: 补充数据可在生物信息学联机
泊松-玻尔兹曼方程(PBE)是一种广泛用于估算离子溶液中分子系统静电能的工具。鉴于蛋白质和其他大分子的结构数据不断增加,并且需要处理更大和更复杂的结构,在最新和负担得起的计算架构(如图形处理单元(GPU))上提供经过测试的可靠算法是非常可取的。在此背景下,我们提出了基于有限差分(FD)方案的线性和非线性PBE求解器的GPU架构实现。首次使用FD方法求解PBE可归因于沃里克和沃森(1982)。我们的实现遵循DelPhi解算器采用的方法,并在中进行了描述Nicholls和Honig(1991)该算法利用拉普拉斯微分算子FD离散化的棋盘结构,采用逐次超松弛收敛到解。据我们所知,这是非线性PBE的GPU实现的第一个描述,它遵循DelPhi使用的相同方法,并在罗基亚等。(2001)。我们的实现可以在任何具有计算统一设备体系结构(CUDA)功能的NVIDIA卡上执行。
GPU实现借用了最初由Nicholls和Honig(1991)。所有与模具相关的计算都在GPU卡(或等效设备)上完成。有趣的是,模板方程式(3)显示了一个棋盘结构(“加法和偶数”),这意味着更新一个点只需要知道其最近邻居的相关信息,而这些邻居具有相反的奇偶性。因此,执行可以分为两段,交替更新奇点和偶点。在每个段中,计算是独立的,因此任何进一步的并行化都是微不足道的。因此,物理网格被划分为两个逻辑子网格,奇数和偶数。我们的GPU实现进一步利用了这种结构,并交替加载奇偶点到设备的“纹理”内存,以优化内存访问。专用数据结构分别处理带电网格点以及位于不同介电介质区域之间边界的网格点。线程从底部的每个网格点开始xy公司对每个子网格进行切片,然后沿着z(z)方向。向前迈出一步z(z)在子网格中对应于物理网格中的增量2xy公司子网格的切片被收集在块中,并被授予访问公共共享内存的权限。基本上,线程执行加载步骤,然后执行更新步骤,最后移动到同一子网格中的上一个切片。例如,在更新奇点之前,线程将加载到共享内存中具有相同索引的奇点。由于一个块的所有线程都是并行的,并且由于有一个专门设计的索引方案,奇数线程块在一步中同时加载更新任务所需的所有偶数网格点,但属于相邻块的相邻点和位于z(z)方向。我们通过在块边界之间添加适当的重叠来处理第一个问题。物理网格的“z−1”和“z+1”点不在共享内存中,因此需要进一步访问“纹理”内存。通过将每个“z+1”点保存在一个临时变量中,这些访问的次数减半。一旦线程移动到上层,临时变量就扮演“z−1”点的角色。在补充材料,提供了算法的图形描述,而对于线性PBE,给出了更详细的解释科梅纳雷斯等。(2013)与DelPhi方法类似,非线性被视为加法像充电一样术语,它只影响位于解决方案中并在解决方案中逐渐插入的栅格点。是否更新非线性项取决于CPU级别,基于DelPhi代码中的启发式方法[罗基亚等。(2001)].
中的结果表1显示了使用AMD Opteron(1.4 GHz)芯片和特斯拉开普勒K20m芯片在CPU上执行的串行代码之间的加速。求解器是在含有8325个原子的脂肪酸酰胺水解酶蛋白上运行的。使用0.15 M的单价盐浓度。分子相对介电常数取2.0,溶液相对介电系数取80.0。德拜长度约为8度。非线性算法的加速比与线性算法相当。事实上,前者受益于大量的浮点操作,但它受到大量数据传输的影响。
脂肪酸酰胺水解酶蛋白-8325原子-297×297×297网格点
注释:按计算步骤报告执行时间:“Boltzmann”包括Laplace和Boltzman更新所花费的总时间“迭代”是在单个迭代步骤中花费的时间“总计”包括GPU卡的所有迭代和初始化。
注释:按计算步骤报告执行时间:“Boltzmann”包括Laplace和Boltzman更新所花费的总时间“迭代”是指在单个迭代步骤中花费的时间“总计”包括GPU卡的所有迭代和初始化。
作者感谢IIT平台Computation和Decherchi博士在将模块链接到DelPhi代码方面提供的帮助。
基金:美国国立卫生研究院(1R01GM093937-01)。
利益冲突:未声明。
谷歌学者
谷歌预览
书目数据库
登录或创建帐户
此PDF仅供订阅者使用
要完全访问此pdf,请登录现有帐户或购买年度订阅。