在MPI_Recv之后使用空的条件while循环是否合理?

Jef*_*ods 1 c mpi

whileMPI_Recv等待另一个处理器的结果发送之后使用空循环是否合理?我想确保处理器在完全收到结果之前不会继续,如下所示:

int recvBuffer = 0;

MPI_Recv(&recvBuffer, 1, MPI_INT, src, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // recvBuffer expects to receive an integer greater than 0
while(recvBuffer == 0);
sum+= recvBuffer;
Run Code Online (Sandbox Code Playgroud)

Jen*_*edt 7

不,这根本不合理,严格来说什么都不做.这是阻止接收.你应该做的是检查函数的返回.可以指示错误.

  • 正如我所说,这是一个阻塞电话.除非接收到某些内容,否则它不会返回到调用函数.最好在手册页中查找函数可能返回的错误,然后相应地处理这些错误. (3认同)