如何运行这个已编译的OpenMPI程序(C)?

如何运行这个已编译的OpenMPI程序(C)?,c,mpi,C,Mpi,我试图在下面的url上运行示例代码。我用“mpicc twoGroups.c”编译了这个程序,并试图将其作为“/a.out”运行,但得到了以下消息:必须指定MP_PROCS=8。终止 我的问题是如何设置MP\U PROCS=8? 小组和交流例行公事在这里 #包括“mpi.h” #包括 #定义NPROC 8 main(int argc,char*argv[]){ int秩、new_秩、sendbuf、recvbuf、numtask、, ranks1[4]={0,1,2,3},ranks2[4]={

我试图在下面的url上运行示例代码。我用“mpicc twoGroups.c”编译了这个程序,并试图将其作为“/a.out”运行,但得到了以下消息:必须指定MP_PROCS=8。终止

我的问题是如何设置MP\U PROCS=8?

小组和交流例行公事在这里

#包括“mpi.h”
#包括
#定义NPROC 8
main(int argc,char*argv[]){
int秩、new_秩、sendbuf、recvbuf、numtask、,
ranks1[4]={0,1,2,3},ranks2[4]={4,5,6,7};
MPI_组原始组、新组;
MPI_通信新通信;
MPI_Init(&argc,&argv);
MPI通信等级(MPI通信世界和等级);
MPI通信大小(MPI通信世界和numtasks);
如果(numtasks!=NPROCS){
printf(“必须指定MP\U PROCS=%d.终止。\n”,NPROCS);
MPI_Finalize();
出口(0);
}
sendbuf=秩;
/*提取原始组句柄*/
MPI_Comm_group(MPI_Comm_WORLD和orig_group);
/*根据等级将任务分为两个不同的组*/
如果(排名
执行MPI程序时,需要使用适当的包装器。大多数情况下,它看起来是这样的:

mpiexec -n <number_of_processes> <executable_name> <executable_args>
您还将看到使用
mpirun
代替
mpiexec
-np
代替
-n
。大多数时候,两者都很好


如果您刚刚起步,那么最好确保您使用的是最新版本的MPI,这样就不会出现旧的bug或奇怪的执行环境。MPICH和openmpi是两种最流行的实现。MPICH刚刚发布了3.1版,而OpenMPI发布了1.7.4版。您通常也可以通过友好的邻居软件包管理器获取其中任何一个。

谷歌返回了此消息:。您是否尝试过
mpirun-n./myprog
mpiexec -n <number_of_processes> <executable_name> <executable_args>
mpiexec -n 8 ./a.out