关键词:
排序算法
GMD程序
分子动力学
数据结构
计算机模拟技术
微观机理
摘要:
分子动力学模拟(Molecular dynamics simulation,MD)通过计算机模拟粒子微观运动来获得体系性质,是一种研究物质微观机理的有效手段。由于计算强度大,目前MD可模拟的时空尺度还不能满足真实物理过程的需要。GPU(Graphics Processing Unit,图形处理单元)作为近年来快速发展的CPU加速设备,为提高MD程序计算性能、扩展MD可模拟的时空尺度提供了新的选择。\n 合并访问是影响GPU性能发挥的关键因素,GPU硬件的不断改进对数据合并访问的条件逐步放宽,为通过改善数据组织来加速GMD程序提供了可能。Hilbert空间填充曲线能够将空间中邻近点转化为线性相邻排列,本文将其应用于课题组己建立的基于GPU的分子动力学程序GMD程序1.0版本的数据排序,通过尽可能满足合并访问的要求来发挥GPU加速的最佳性能。在此基础上,本文开展了其他性能优化工作,由此建立了GMD2.0版本。本论文主要工作内容包括:\n 1.通过对GMD1.0性能考察以及与其他分子模拟软件的比较,提出进一步提升GMD程序计算性能的可行方案。为GMD程序建立了一种基于Hilbert空间填充曲线的粒子排序算法。通过重建数据结构,改变成键力计算方法实现了对成键力信息和排除列表的排序,完成的排序算法具有较强的通用性。\n 2.对GMD1.0程序计算性能的进一步加速进行了多方面的探索。主要包括邻居搜索算法的改进、邻居搜索执行判定、线程块大小(block_size)对程序执行速度的影响以及执行参数选取等,一定程度上对程序加速提供了帮助。\n 3.加速后的GMD2.0计算结果与GMD1.0一致。与GMD1.0相比,对于L-J势能模拟算例,加速效果为100%~150%;对于聚乙烯结晶过程模拟算例,加速在16%以上;对于反应分子动力学ReaxFF力场,也具有一定加速效果。