Mpi 确定MPMD中每个程序的进程数
是否可以从程序中知道有多少进程正在执行Mpi 确定MPMD中每个程序的进程数,mpi,Mpi,是否可以从程序中知道有多少进程正在执行prog_1和prog_2 mpirun-np3程序1:-np5程序2 我的意思是,我怎么知道3个进程正在执行的prog_1的内部呢?我认为没有一种简单且可移植的方法来实现这一点。 程序名在argv[0]中,因此您可以MPI_聚集()它们和MPI_Bcast()或MPI_分散()您需要的信息 另一种方法是只从第一个程序开始,然后MPI\u Comm\u spawn()第二个程序。argv只包含可执行文件前面的字符串(以及可执行文件的名称),因此-np 3不会
prog_1
和prog_2
mpirun-np3程序1:-np5程序2
我的意思是,我怎么知道3个进程正在执行的prog_1的内部呢?我认为没有一种简单且可移植的方法来实现这一点。 程序名在
argv[0]
中,因此您可以MPI_聚集()
它们和MPI_Bcast()
或MPI_分散()
您需要的信息
另一种方法是只从第一个程序开始,然后
MPI\u Comm\u spawn()
第二个程序。argv只包含可执行文件前面的字符串(以及可执行文件的名称),因此-np 3不会出现在那里(我正确理解您的想法?)。我试图避免使用MPI_Comm_spawn。这就是为什么您需要MPI_Gather()
所有argv[0]
,然后您可以计算出有多少程序以及每个程序运行了多少个实例。现在我明白了,谢谢您的新解释!