比如说,我使用 MPI 运行一个并行程序。执行命令
mpirun -n 8 -npernode 2 <prg>
共启动 8 个进程。即每个节点 2 个进程,总共 4 个节点。(OpenMPI 1.5)。其中一个节点包含 1 个 CPU(双核)并且节点之间的网络互连是 InfiniBand。
现在,可以通过以下方式确定等级编号(或进程编号)
int myrank;
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
这将返回一个介于 0 和 7 之间的数字。
但是,如何确定节点号(在本例中为 0 到 3 之间的数字)和节点内的进程号(0 到 1 之间的数字)?