使用aprun进行进程放置-每个节点需要一个进程

问题描述

我需要在aprun下的Cray系统上运行MPI代码。由于我不愿讨论的原因,系统要求我运行它,以使节点中没有多个进程。我一直对aprun手册页感到困惑,并且不确定是否知道这一点。如果我只有两个进程,此命令将确保它们在不同的节点上运行吗? (假设一个节点上有32个核心。)

> aprun -n 2 -d 32 --cc depth ./myexec

解决方法

如果有人感兴趣,我上面的命令行可以正常工作。我用以下代码进行了测试:

#include <mpi.h>
#include <stdio.h>
 
int main(int argc,char **argv) {
char hname[80];
int length;
 
MPI_Init(&argc,&argv);
 
MPI_Get_processor_name(hname,&length);
printf("Hello world from %s\n",hname);
MPI_Finalize();

}