论文部分内容阅读
逆蒙特卡罗方法(Reverse Monte Carlo method),是以部分确定的物理规律为约束条件,根据实验数据多次模拟,用以解释实验现象和发现物理规律的一种常用方法。它是标准的Metropolis-Hastings算法变体,可以用来解决逆向问题,调节模型,使参数和实验数据达到较大的一致性。逆蒙特卡罗方法广泛地应用于高能物理以及固体化学的研究中,但是由于技术的发展和模拟精度要求的增加,模拟的实验规模和数据量变得越来越大,程序模拟的耗时变得越来越久,从而得到一个较好的构型需等待较长时间,影响了科学研究的效率。针对上述问题,本文对逆蒙特卡罗方法基于MPI+OpenMP进行了并行优化研究。以一款逆蒙特卡罗应用Empirical Potential Structure Refinement(简称EPSR)为例,进行了详细的并行优化研究。提出了一款GROMACS和EPSR的耦合算法,使得系统能量最小化的过程耗时得到了有效的提升,对于EPSR节点间进行了Message Passing Interface(简称MPI)并行优化,对于节点内进行了OpenMP并行优化,在保证模拟精度满足实验要求的条件下,提升了EPSR的模拟效率。本文的贡献主要包括以下三个方面:首先,本文提出了一种GRMACS和EPSR的耦合算法,将GROMACS和EPSR的原子坐标、分子模型以及原子间作用势能等信息进行耦合,充分利用GROMACS能量最小化的并行优势来提升系统能量最小化的效率。其次,本文设计并实现了逆蒙特卡罗应用EPSR的MPI并行化方法。采用主从/对等两者混合的MPI并行编程模式,将EPSR系统中粒子的坐标信息分发到不同的节点进行模拟计算,然后回传进行分析并多次迭代直到系统达到平衡态。模拟迭代模块的加速比达到2.2,模拟过程具有较好的收敛性。再次,本文设计并实现了逆蒙特卡罗应用EPSR的OpenMP优化方法。使用OpenMP编程模型,通过多线程将程序可并行部分并发执行,在节点内实现多线程的并行计算,通过合并并行区,增大并行粒度,充分挖掘多核处理器的计算能力,大幅减短模拟仿真的时间。最后进行了并行性模拟效果的评估,验证了并行算法的可行性和有效性,并进行了性能瓶颈的分析。本文未来的工作将围绕逆蒙特卡罗方法做更多的优化,将MPI拓展到更多的节点上面。