论文部分内容阅读
分子动力学(MolecularDynamics,MD)方法是分子模拟的一类方法,广泛应用于生物、材料等领域。由于计算强度大,目前MD可模拟的时空尺度还远不能满足真实体系物理过程对应的时空尺度。近6年来,随着图形处理器(GraphicsProcessingUnit,GPU)的峰值计算能力和带宽远超过同时期的中央处理器(CentralProcessingUnit,CPU),利用GPU提升MD计算性能的尝试成为国际上研究的热点之一。
本论文基于作者所在的中国科学院过程工程研究所高性能计算与化学信息学课题组业已建立的单GPU加速的分子动力学程序GMD2.0和NVIDIAC2050GPU,实现了基于GPU的LINCS键长约束算法(GMD_LINCS)和处理刚性水分子的SETTLE约束算法(GMD_SETTLE)以扩展GMD2.0的功能。同时,为进一步提升GMD2.0单节点的计算性能、扩大其可模拟体系的规模,本论文初步建立了基于单节点多GPU并行的分子动力学程序MGMD。主要工作包括:
(1)本论文实现了基于GPU的MD约束算法包括GMD_LINCS和GMD_SETTLE,并通过合理地组织线程和高效地使用存储器等优化策略显著提升了二者的计算性能。采用国际主流的MD模拟软件GROMACS4.5.3版本的单核CPU程序作为计算性能测试的基准程序,对189,054粒子规模的聚丙烯腈(PAN)算例的测试结果表明,GMD_LINCS可获得约17倍的加速比;对99,678粒子规模的水算例的测试结果表明,GMD_SETTLE可获得约30倍的加速比。本论文已将GMD_LINCS和GMD_SETTLE集成到GMD2.0程序中,以很小的额外计算代价扩展了GMD2.0进行约束动力学模拟的功能。
(2)本论文采用POSIXthread多线程共享内存编程模型实现了单节点多GPU并行的分子动力学程序MGMD,将邻居搜索、范德华力计算、成键力计算和粒子更新等MD的核心模块全部置于GPU端计算。通过复杂的粒子和成键作用等信息的迁移处理,大幅减少了GPU与CPU之间的数据通信时间,显著提升了MGMD的计算性能。采用国际主流的MD模拟软件GROMACS程序的近期版本作为计算性能测试的基准程序,对27万粒子规模的聚乙烯(PE)算例的测试结果表明,基于6块GPU的MGMD与GROMACS4.5.3版本的单核CPU相比,MGMD的范德华力和成键力模块可获得约260倍的加速比,邻居搜索可获得约90倍的加速比,MGMD的整体性能可获得50倍左右的加速比。对18万粒子规模的PE算例的测试结果表明,与最新的支持多GPU加速的GROMACS4.6.1版本的GPU程序相比,均基于2块GPU计算时,MGMD的计算性能约为GROMACS4.6.1的2.4倍;均基于4块GPU计算时,MGMD约为GROMACS4.6.1的1.6倍。本论文的单节点多GPU并行策略特别是粒子和成键作用等信息迁移的复杂处理策略获得了计算性能的高回报,MGMD程序获得了显著的加速效果。