GROMOS96的共享内存并行化:原理、实现与性能分析
1. 并行化基础与优势
GROMOS96的并行化基于共享内存接口(SMI)库,采用了SMI所暗示的逐步并行化策略,这种方法具有以下显著优势:
- 降低复杂度 :对于已有的顺序代码进行并行化时,一次性处理所有数据结构和子算法是非常关键的挑战。而逐步并行化策略可以避免这种复杂性,使得并行化过程更加可控。
- 并行化过程的可扩展性 :并行代码的性能应与并行化过程中投入的工作量成正比。通过详细分析顺序代码部分所花费的时间,仅对关键代码部分进行并行化,可能会带来巨大的性能提升,这对于资源有限(尤其是资金有限)的项目尤为重要。
共享内存是实现上述两个优势的必要条件。如果采用消息传递并行化,伴随的是分区和分布式数据结构,那么就无法实现这种逐步并行化的过程。对于像GROMOS96这样由多个不同算法组成的代码,从少数代码部分开始并行化的可能性是一个巨大的优势。一些算法虽然对计算复杂度的贡献不大,但并行化起来相当复杂,可以在初始步骤中忽略。因此,基于SCI的NUMA共享内存集群显示出的优势远不止于性能方面的考虑。
2. 并行化的具体步骤
2.1 启动并行性与协调I/O
并行执行环境通过初始化SMI并从中请求几个参数来设置,例如进程总数、进程排名等。GROMOS96使用多个输出流:
- 一些输出流写入特定文件,例如原子随时间的轨迹数据。
- 一个输出流发送到控制台,包含模拟参数、错误消息、每个时间步的系综平均量以及整个模拟运行的平均值。
- 对于与并行化相关的输出,如性能数据
超级会员免费看
订阅专栏 解锁全文
1049

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



