[MPI]Logically Parallel Communication for Fast MPI+Threads Applications

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的版本中,增加逻辑并行网络,使得硬件设备可以利用网络并行来加速运算。

该问题当前有两个学派:

  1. 使用用户可见的Endpoints,user-visible endpoints
    endpoint也是MPI中的一个新特性,是一个灵活的用户接口,让用户自己定义通讯行为。
    缺点:概念前卫,需要对代码进行比较大程度的改动。

  2. 利用已有的MPI机制
    现有的MPI标准满足点对点通讯和RMA操作的逻辑并行通讯。
    点对点操作本身就是独立的,天然带有逻辑并行。
    而RMA操作对顺序是没有要求的

MPI-4.0的版本中计划加入逻辑通讯并行的功能

本文:写了一个MPI+thread的库
叫VCI, virtual communication interface

实验:
针对三类HPC软件进行的改进和实验。

相关工作:

  1. MPI库
    问题本质:对网络并行的利用率不足
    现有的研究聚焦于减少MPI+threads的锁冲突。
    openmpi中引入了CRI communication resource instances 来建立并行的通讯channels
    intel的mpi也利用自己的endpoints支持实现了对网络的并行通讯

  2. case study
    有一篇关于VASP的优化,是基于intel的mpi,改进了MPI+openmp,实现了1.27倍的加速。可以看一下文章。
    其他不是很感兴趣。

结论:
本文利用已有的mpi机制来实现一个LPC的功能,通讯密集的任务可以达到2倍的加速。
但这个需要领域专家的介入,最大化threads之间的并行度,才能有更好的结果

你可能感兴趣的:([MPI]Logically Parallel Communication for Fast MPI+Threads Applications)