将MPI等级数推广到MPI组?

Tho*_* W. 3 mpi

是否对组编号进行了等级编号的概括?对于我的代码,我想创建一个MPI :: COMM_WORLD的层次分解.假设我们使用16个线程.我使用MPI :: COMM_WORLD.Split创建4个通信器,每个通信器有4个等级.现在是否有MPI功能为相应的四个组提供一些独特的ID?

sus*_*att 5

好吧,您仍然可以通过其原始排名来引用每个流程MPI_COMM_WORLD.您还可以通过colorkey参数完全控制每个进程在其新通信器中接收的等级MPI_Comm_split().这是足够的信息来创建旧排名和新组/排名之间的映射.

  • 对我来说似乎很简单.如果你想要将N*M个进程分成M个N组,那么每个进程都会调用`split()`和`rank/N`颜色(以及可选的`rank%N`键).这将将0..N-1排列到组0中,将N..2*N-1排列到组1中,依此类推,并保留每个组内进程的原始排序.组"j"中排名为"i"的过程是"MPI_COMM_WORLD"中排名为"j*N + i"的过程. (2认同)