gpt4 book ai didi

c - For循环在一个循环后退出-MPI

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:15 24 4
gpt4 key购买 nike

我正在处理一个发送/接收 MPI 程序,由于某种原因,循环只迭代一次然后退出。有谁知道为什么?

代码:

#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
int rank;
int b2, a1;
MPI_Status status;
MPI_Init(NULL, NULL);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);

for (int j = 0; j < 100; j++) {
if (rank == 0) {
a1 = 10;
MPI_Sendrecv(&a1, 1, MPI_INT, 1, 99,
&b2, 1, MPI_INT, 1, 99,
MPI_COMM_WORLD, MPI_STATUS_IGNORE);

} else {
a1 = 20;
MPI_Sendrecv(&a1, 1, MPI_INT, 0, 99,
&b2, 1, MPI_INT, 0, 99,
MPI_COMM_WORLD, MPI_STATUS_IGNORE);
}
}

printf("Process %d: received %d\n", rank, b2);
MPI_Finalize();

}

输出(这应该重复多次,但这是我得到的全部):

Process 1: received 10
Process 0: received 20

最佳答案

您的 printf() 不在循环中。它只打印一次也就不足为奇了。

关于c - For循环在一个循环后退出-MPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52453607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com