并行计算中MPI的内存使用与优化
在当今的计算领域,随着大规模并行计算系统的不断发展,MPI(Message Passing Interface)作为一种广泛使用的并行编程模型,其可扩展性受到了越来越多的关注。其中,MPI实现的内存消耗是限制其扩展到百亿亿次级系统(Exascale)的一个重要因素。
1. 并行计算现状与MPI内存问题
目前,世界上最大的并行机器已经拥有数十万核心,并且很快将进入百万核心系统的时代。例如,2012年部署在劳伦斯利弗莫尔国家实验室的IBM Blue Gene/Q系统(Sequoia)将拥有超过150万个核心,峰值速度达到20 petaflops。然而,尽管核心数量迅速增加,但每个核心可用的内存量并没有相应增加。
许多研究人员和用户担心MPI在如此大规模系统中的可扩展性,尤其是其潜在的内存消耗问题。一般认为,随着系统规模的增长,MPI在每个进程上消耗的内存也会线性增加。如果不采取措施,MPI本身可能会消耗百亿亿次级系统中很大一部分可用内存。
虽然存在一些关于MPI实现中内存消耗问题的传闻证据,但很难找到关于MPI在大规模系统下内存消耗的定量数据。特别是,对于哪些方面只是需要修复的错误,哪些是需要重新设计或重新思考传统MPI实现方式的内在问题,缺乏相关信息。
2. MPI中看似不可扩展的内存使用情况分析
乍一看,MPI在许多方面似乎需要在每个进程上存储O(p)数据(p为MPI程序中的进程数量)。下面对一些常见方面进行分析:
- 组表示(Group Representation) :MPI组描述了一组进程。一种明显的实现方式是通过某种标识符(如M
超级会员免费看
订阅专栏 解锁全文
15

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



