论文部分内容阅读
分子动力学模拟是一种微观领域的模拟方法,在物理、化学、生物及材料等领域应用广泛。由于分子动力学模拟的计算量非常庞大,计算非常耗时,并行计算是解决该问题的必经之路。然而,负载不平衡导致并行的分子动力学模拟程序执行的时间仍然较长。因此,期望通过引入负载平衡算法,有效地优化分子动力学模拟程序,提高模拟效率。
通过研究现有的动态负载平衡算法,针对激光诱导光化学反应的分子动力学模拟程序中最耗时模块的有关特点,给出了节点作业速度和负载平衡度的定义,提出了一种基于反馈机制的动态负载平衡算法。该算法以节点作业速度为负载指标;决策策略采用集中式策略,每轮循环结束后主节点都需收集各计算节点在该轮循环中执行的任务个数及对应的执行时间,计算并保存各节点的作业速度;每个反馈周期的第一轮循环之前主节点都将根据计算节点作业速度比分配任务;每个反馈周期结束后,主节点通过指数平均法预测下个反馈周期内各计算节点的工作速度、计算节点的加权负载平衡度,进而更新反馈周期。
对照算法是始终将任务按数量平均分配到各个节点的静态负载平衡算法。将该动态负载平衡算法和对照算法都用Fortran+MPI编程实现,并分别加入到现有的分子动力学模拟程序中。通过对比实验发现,相对于平均分配任务的静态负载平衡算法,该动态负载平衡算法具有更好的负载平衡效果,在系统本身负载不平衡时能有效地缩短程序的并行执行时间。实验也证明,通过指数平均法来预测节点负载和更新反馈周期的复杂反馈策略,在负载平衡效果方面要好于每轮循环均反馈的简单反馈策略,进而表明引入复杂反馈策略具有必要性。
整个研究表明,选取合适的负载指标是实现理想的动态负载平衡算法过程中的重点和难点;基于指数平均法的负载预测机制和反馈周期动态变化的反馈机制,显著地提高了动态负载平衡算法的负载平衡效果;设计合理的动态负载平衡算法能够有效减少并行程序的执行时间,在多数情况下其负载平衡效果都将超过静态负载平衡算法。