MPI - 使用 MPI_Cart_create 重新排序进程

MPI - Reordering of processes using MPI_Cart_create

根据 MPI 标准,可能会使用 MPI_Cart_create 例程的重新排序参数“可能是为了选择虚拟拓扑的良好嵌入 物理机”。但是,我无法找到有关如何在 OpenMPI 或 MPICH 中执行此操作的任何信息。 谁能解释一下这种重新排序是如何发生的,以及它是否真的在任何 MPI 实现中提供了优化的虚拟拓扑?

拓扑感知通信器 可以 提高性能的方法有很多,但实际上,没有实现真正做到这一点(正如 Jeff 在评论中所说)。

理论上,一个实现可以做一些事情,比如安排等级,这样在物理拓扑中接近的进程(例如在相同的 socket/node/rack/etc.)也会在等级上接近。这将缩短沟通时间,因为您可以减少与您最常沟通的队伍沟通的次数。