[MPI]Logically Parallel Communic
Zambre, R., Sahasrabudhe, D., Zhou, H., Berzins, M., Chandramowlishwaran, A., & Balaji, P. (2021). Logically Parallel Communication for Fast MPI+Threads Applications. IEEE Transactions on Parallel and Distributed Systems, 32(12), 3038–3052. https://doi.org/10.1109/tpds.2021.3075157
大意:随着CPU的核数增多,对与MPI而言,内存反而成为瓶颈。目前的解决方案有MPI+threads的方案,通过Threads共享内存,来解决问题。现有的问题在于,MPI中没有提供逻辑上并行的通讯,使得MPI在利用网络进行并行时存在一定的问题。
解决方案:提出在MPI-4.0的版本中,增加逻辑并行网络,使得硬件设备可以利用网络并行来加速运算。
该问题当前有两个学派:
-
使用用户可见的Endpoints,user-visible endpoints
endpoint也是MPI中的一个新特性,是一个灵活的用户接口,让用户自己定义通讯行为。
缺点:概念前卫,需要对代码进行比较大程度的改动。 -
利用已有的MPI机制
现有的MPI标准满足点对点通讯和RMA操作的逻辑并行通讯。
点对点操作本身就是独立的,天然带有逻辑并行。
而RMA操作对顺序是没有要求的
MPI-4.0的版本中计划加入逻辑通讯并行的功能
本文:写了一个MPI+thread的库
叫VCI, virtual communication interface
实验:
针对三类HPC软件进行的改进和实验。
相关工作:
-
MPI库
问题本质:对网络并行的利用率不足
现有的研究聚焦于减少MPI+threads的锁冲突。
openmpi中引入了CRI communication resource instances 来建立并行的通讯channels
intel的mpi也利用自己的endpoints支持实现了对网络的并行通讯 -
case study
有一篇关于VASP的优化,是基于intel的mpi,改进了MPI+openmp,实现了1.27倍的加速。可以看一下文章。
其他不是很感兴趣。
结论:
本文利用已有的mpi机制来实现一个LPC的功能,通讯密集的任务可以达到2倍的加速。
但这个需要领域专家的介入,最大化threads之间的并行度,才能有更好的结果