论文部分内容阅读
分子动力学模拟是一种依靠牛顿力学原理来模拟分子体系运动的方法。它能跟踪每个粒子的个体运动,准确记录每个时刻各个粒子的位置和动量,即相空间的运动轨迹;再通过统计力学计算方法得到多体系统的静态和动态特性,从而得到系统的宏观性质。分子动力学模拟被广泛地应用于计算化学、气候模拟、材料学、生物化学等研究领域。
为了使模拟计算的结果更加准确地反应宏观行为,在分子动力学计算过程中,往往需要尽可能多地增加模拟体系的粒子个数、延长模拟的时间,这就使分子动力学计算相当耗费计算时间。为了更准确、更快速地得到模拟结果,在并行计算机平台上,对分子动力学模拟算法进行并行优化,就成为越来越多科研人员的首要选择。
本文根据并行计算技术的设计方法,对基于OpenMP的分子动力学模拟并行算法进行优化。论文的核心工作包括以下内容:
首先,考虑软硬件平台和算法的结合,在生物学院的一台SMP处理机上,使用OpenMP对分子动力学模拟并行算法进行实现。然后简要介绍了分子动力学模拟串行算法的基本原理与步骤。通过耦合的TTM-MD模拟计算方法研究了飞秒激光辐照下厚度为49.3 nm铝膜的温度、压力变化情况和熔化机制。可以看出该系统能通过计算机真实的模拟出实验结果,对实际操作起到很好的指导作用。
其次,分析传统的基于OpenMP的分子动力学模拟并行算法,针对已有的Critical并行算法的缺点一在Critical Section中同一时间内只能有一个线程执行它,其他的线程要排队等待进入临界区。本文提出三角形方法来减少线程等待时间。该方法首先使用根据算法特点得到的公式求出每个线程应计算的粒子数,然后为每个线程求得初始粒子和终止粒子,最后在并行区,根据线程号,为每个线程分配粒子,使得各个线程计算的粒子数不同。线程在计算完粒子间的相互作用力后,就进入临界区更新粒子的力矩阵。因为每个线程所计算作用力的粒子数不同,线程可以在不同的时刻到达临界区,从而使得某一个线程在临界区更新力矩阵的同时,其他的线程并没有排队等待进入临界区,而是在执行粒子间相互作用力的计算。这样就可以减少线程等待进入临界区的时间。相比Critical方法-在临界区只有一个线程执行,而其他线程都在等待进入临界区,三角形方法可以减少线程等待进入临界区的时间。
最后,测试了使用三角形方法改进的分子动力学模拟并行算法,并与Critical方法进行比较,分析其性能,详细叙述了三角形方法在CPU为11加速比较优的原因。同时验证算法的正确性。减少程序编译、运行时的重复工作。