摘要

总结:在这项工作中,我们提出了基于CUDA的GPU实现泊松-玻尔兹曼方程求解器,在线性和非线性版本中,使用双精度。采用有限差分格式,并使其适用于GPU体系结构。生成的代码与生物分子DelPhi的静电软件接口,该软件在计算生物学界广泛使用。该算法已使用CUDA实现,并在几个具有代表性的生物兴趣案例上进行了测试。对实现和性能测试结果的详细信息进行了说明。在线性和非线性情况下,均实现了约10倍的加速。

可用性和实施:该模块是开源的,可在http://www.electrostaticszone.eu/index.php/downloads.

联系人: walter.rocchia@iit.it

补充信息: 补充数据可在生物信息学联机

1简介

泊松-玻尔兹曼方程(PBE)是一种广泛用于估算离子溶液中分子系统静电能的工具。鉴于蛋白质和其他大分子的结构数据不断增加,并且需要处理更大和更复杂的结构,在最新和负担得起的计算架构(如图形处理单元(GPU))上提供经过测试的可靠算法是非常可取的。在此背景下,我们提出了基于有限差分(FD)方案的线性和非线性PBE求解器的GPU架构实现。首次使用FD方法求解PBE可归因于沃里克和沃森(1982)。我们的实现遵循DelPhi解算器采用的方法,并在中进行了描述Nicholls和Honig(1991)该算法利用拉普拉斯微分算子FD离散化的棋盘结构,采用逐次超松弛收敛到解。据我们所知,这是非线性PBE的GPU实现的第一个描述,它遵循DelPhi使用的相同方法,并在罗基亚等。(2001)。我们的实现可以在任何具有计算统一设备体系结构(CUDA)功能的NVIDIA卡上执行。

2序列数值解

PBE规定了自由电荷和偶极子与溶质上的固定电荷发生反应的系统的静电势。这可以被认为是德拜-哈克尔连续统静电理论的延伸[参见德拜和哈克尔(1923)]. 它在生物物理学中被成功地用于估计离子溶液中生物分子系统的静电能,如Grochowski和Trylska(2007)从数学的角度来看,PBE是一个二阶、椭圆和非线性偏微分方程,在一价盐溶解在溶液中的情况下,它采用以下形式:
(1)
哪里公式是静电势,ϵ是局部相对介电常数,公式是真空的介电常数公式在溶质内为零,它等于溶液中德拜长度的倒数。该等式可以重写,以隔离对电势的非线性依赖:
(2)
这种形式特别适用于根据摄动方法将非线性算法设计为线性算法的自适应。PBE的FD离散化和连续过松弛方法的应用导致以下迭代模板:
(3)
哪里q个j个是离散的固定电荷,小时是网格间距,ξ表示非线性校正(如果存在),ω是过松弛因子。在线性情况下,可以从迭代矩阵的最高特征值中获得ω的最佳值,如Stoer和Bulirsch(2002)由于迭代矩阵是对角占优的,因此该方法是稳定的。在非线性情况下,过度松弛会导致发散,并使用自适应方法分配ω,如罗基亚等。(2001).通常根据球对称线性化PBE的解析解采用Dirichlet边界条件,在罗基亚(2005).

3 GPU实施

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)].

4结果

中的结果表1显示了使用AMD Opteron(1.4 GHz)芯片和特斯拉开普勒K20m芯片在CPU上执行的串行代码之间的加速。求解器是在含有8325个原子的脂肪酸酰胺水解酶蛋白上运行的。使用0.15 M的单价盐浓度。分子相对介电常数取2.0,溶液相对介电系数取80.0。德拜长度约为8度。非线性算法的加速比与线性算法相当。事实上,前者受益于大量的浮点操作,但它受到大量数据传输的影响。

表1。

脂肪酸酰胺水解酶蛋白-8325原子-297×297×297网格点

计算步骤线性解算器非线性解算器
GPU(CPU,加速)GPU(CPU,加速)
波尔兹曼9.060秒(1分31秒,×10.05)8.83秒(1分28秒,×9.96)
迭代0.015秒(0.18秒,×10.60)0.035秒(0.44秒,×12.57)
总计10.250秒(1分38秒,×9.61)10.14秒(1分37秒,×9.55)
计算步骤线性解算器非线性解算器
GPU(CPU,加速)GPU(CPU,加速)
波尔兹曼9.060秒(1分31秒,×10.05)8.83秒(1分28秒,×9.96)
迭代0.015秒(0.18秒,×10.60)0.035秒(0.44秒,×12.57)
总计10.250秒(1分38秒,×9.61)10.14秒(1分37秒,×9.55)

注释:按计算步骤报告执行时间:“Boltzmann”包括Laplace和Boltzman更新所花费的总时间“迭代”是在单个迭代步骤中花费的时间“总计”包括GPU卡的所有迭代和初始化。

表1。

脂肪酸酰胺水解酶蛋白-8325原子-297×297×297网格点

计算步骤线性解算器非线性解算器
GPU(CPU,加速)GPU(CPU,加速)
波尔兹曼9.060秒(1分31秒,×10.05)8.83秒(1分28秒,×9.96)
迭代0.015秒(0.18秒,×10.60)0.035秒(0.44秒,×12.57)
总计10.250秒(1分38秒,×9.61)10.14秒(1分37秒,×9.55)
计算步骤线性解算器非线性解算器
GPU(CPU,加速)GPU(CPU,加速)
波尔兹曼9.060秒(1分31秒,×10.05)8.83秒(1分28秒,×9.96)
迭代0.015秒(0.18秒,×10.60)0.035秒(0.44秒,×12.57)
总计10.250秒(1分38秒,×9.61)10.14秒(1分37秒,×9.55)

注释:按计算步骤报告执行时间:“Boltzmann”包括Laplace和Boltzman更新所花费的总时间“迭代”是指在单个迭代步骤中花费的时间“总计”包括GPU卡的所有迭代和初始化。

确认

作者感谢IIT平台Computation和Decherchi博士在将模块链接到DelPhi代码方面提供的帮助。

基金:美国国立卫生研究院(1R01GM093937-01)。

利益冲突:未声明。

参考文献

科梅纳雷斯
J型
用CUDA求解GPU上的线性Poisson-Boltzmann方程
第21届欧洲微观并行、分布式和网络处理国际会议(PDP)
2013
(第
420
-
426
)
德拜
P(P)
哈克尔
E类
电解质祖尔理论
Physik公司。宙斯。
1923
,卷。 
24
(第
185
-
206
)
格罗霍夫斯基
P(P)
特里斯卡
J型
连续分子静电、盐效应和反离子结合——泊松-玻尔兹曼理论及其修正综述
生物聚合物
2007
,卷。 
89
(第
93
-
113
)
尼科尔斯
A类
霍尼格
B类
利用逐次过松弛法求解泊松-玻耳兹曼方程的快速有限差分算法
J.计算。化学。
1991
,卷。 
12
(第
435
-
445
)
罗基亚
W公司
生物应用的泊松-玻耳兹曼方程边界条件
数学。计算。模型1。
2005
,卷。 
41
(第
1109
-
1118
)
罗基亚
W公司
扩展非线性泊松-玻尔兹曼方程的适用性:多重介电常数和多价离子
《物理学杂志》。化学。B类
2001
,卷。 
105
(第
6507
-
6514
)
斯托尔
J型
布利尔施
R(右)
数值数学
2002
柏林-海德堡-纽约
施普林格
柳条
J型
沃森
H(H)
螺旋偶极子有源区缝隙电势的计算
分子生物学杂志。
1982
,卷。 
157
(第
671
-
679
)

作者注释

副主编:Anna Tramontano

补充数据