GPGPU(General-purpose computing on graphics processingunits)技术能够使用图形处理器完成通用计算,将GPGPU用于计算强度大的科学计算是高性能计算的最新发展趋势[1,2]。GROMACS[3]是著名分子动力学模拟的开源软件之一,由于其代码...
详细信息
GPGPU(General-purpose computing on graphics processingunits)技术能够使用图形处理器完成通用计算,将GPGPU用于计算强度大的科学计算是高性能计算的最新发展趋势[1,2]。GROMACS[3]是著名分子动力学模拟的开源软件之一,由于其代码进行了多种提高计算速度的优化,GROMACS的计算性能可达到其他同类软件的3到10倍。尽管如此,为了计算更加接近实际情况的体系,其计算性能仍需进一步提高。最近两年,随着编程环境的改善,将GPGPU应用于分子动力学计算的尝试开始出现,已有一些研究人员对GROMACS向GPGPU上的移植进行了探索,例如由Folding@Home[4]推出的基于GPGPU的分子动力学运算核心GroGPU,Folding@Home是一个研究蛋白质折叠、聚合以及由此引起的相关疾病的分布式计算工程,GroGPU是分布式网格并行客户端,只能用于Windows系统,无法满足在高性能并行集群上的应用需要,而且源码没有公开也限制了对其进行深入的了解和研究。由***推出的基于GPGPU的分子动力学通用运算库OpenMM[5],以及使用OpenMM加速的GROMACS。基于OpenMM的GROMACS的核心计算部分是独立于原有的GROMACS代码重新开发的产物,与成熟的GROMACS相比,还存在着一些功能上的局限性,比如无法处理循环边界问题,在计算非键作用力时没有考虑截断距离等等。本文对GROMACS向GPGPU上移植的进行了初步研究,移植坚持的一个主要原则是保持GROMACS原有程序框架,尽量避免修改函数接口,以尽可能的保证移植后GROMACS的基本功能没有缺失,方便熟悉原有GROMACS的研究人员进一步研究和改进。通过对Nvidia CUDA GPGPU编程模式以及GROMACS代码的研究分析,论证了将GROMACS移植到以GPGPU为计算核心的平台上的可行性,并通过算法和参数数据组织形式的改造实现了GROMACS中非键力计算函数从x86处理器向GPGPU的移植,获得显著的性能提升,计算加速比达到10倍以上,为GROMACS整体移植的实现奠定了基础。
暂无评论