控制如何从MPI_Send()直接跳转到MPI_Recv()else if。 就决策条件而言,它应该只执行一个代码块。MPI的执行流程
int main(int argc, char *argv[]) {
int number = 54;
MPI_Init(&argc, &argv);
MPI_Comm_size (MPI_COMM_WORLD, &no_of_process);
MPI_Comm_rank (MPI_COMM_WORLD, &process_rank);
MPI_Status status;
if (process_rank == 0) {
MPI_Send (&number, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
}
else if (process_rank == 1) {
MPI_Recv (&number, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
}
}
好吧,简而言之,它不应该在单个线程中执行这两个块,但是如果涉及多个进程或线程,它可能会像这样做。你能举个例子说明你的意思吗? –
在看不到代码的情况下回答这个问题是非常困难的。第一个难点是正确理解你的问题。 –
@HighPerformanceMark我用一段简单的代码编辑了我的问题,希望这有助于理解我想问的问题。 – droidlabour