MPI排名过程

MPI排名过程,mpi,Mpi,我是一名MPI初学者,所以我想知道MPI程序排名的确切定义,以及我们为什么需要它 例如,这里有两行代码: int world_rank; MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); 要理解这一点,您需要意识到MPI使用SPMD单程序多数据模型。这意味着,如果并行运行此程序,例如同时在4个进程上运行,则每个进程都会运行同一程序的独立副本。所以,基本的问题是:为什么不是每个过程都做相同的事情?要使用并行编程,您需要进程来做不同的事情。例如,您可能

我是一名MPI初学者,所以我想知道MPI程序排名的确切定义,以及我们为什么需要它

例如,这里有两行代码:

int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);

要理解这一点,您需要意识到MPI使用SPMD单程序多数据模型。这意味着,如果并行运行此程序,例如同时在4个进程上运行,则每个进程都会运行同一程序的独立副本。所以,基本的问题是:为什么不是每个过程都做相同的事情?要使用并行编程,您需要进程来做不同的事情。例如,您可能希望一个进程充当控制器,将作业发送给多个工作人员。秩是每个进程的基本标识符。如果在4个进程上运行,则上述程序将在不同进程上返回0、1、2和3的秩。一旦一个进程知道它的等级,它就可以采取适当的行动,例如,如果我的等级为零,则调用控制器函数,否则调用辅助函数。

我们还有MPI\u Comm\u sizeMPI\u Comm\u WORLD,&n,其中n是通信组中的进程数。那么这是否意味着1rank可以有多个进程,或者仅为一个进程标识一个列组?那么为什么这些整数没有初始化呢