并行模拟:从算法到实践
1. 并行化力计算例程
在并行模拟中,力计算例程的并行化是一个关键环节。 md_lj_omp_module.f90 提供了一个使用 OpenMP 指令并行化的 Lennard - Jones 力计算例程,它可以替代 md_lj_module.f90 。以下是该文件的部分代码:
! md_lj_omp_module.f90
! Force routine for MD simulation , LJ atoms , OpenMP
MODULE md_module
将这个模块与 md_nve_lj.f90 以及附录 A 中描述的实用模块结合,就可以构建一个分子动力学程序。
在并行化力计算时,有两种处理方式。一种简单但粗糙的方法是放弃牛顿第三定律,让内层循环范围为 j = 1 ... N (跳过 j = i ),只在内层循环中更新 fi ,这样力数组 f 可以在所有线程间安全共享,但会增加一倍的工作量。另一种方法是保持循环不变,将力数组添加到归约子句的变量列表中。
2. 并行副本交换
2.1 基本原理
并行副本交换(Replica exchange),也称为并行回火(Parallel tempering),可以在并行计算机上高效实现。以分布式内存机器为例,考虑一个温度阶梯的简单情况,每个独
超级会员免费看
订阅专栏 解锁全文
9万+

被折叠的 条评论
为什么被折叠?



