我正在编写一个程序,使用
一是找到了更好的路径,此时缓冲区的第一个槽将声明为
另一种情况是
MPI
库来检查最短路径。有两种情况:一是找到了更好的路径,此时缓冲区的第一个槽将声明为
resultBuff[0] = 1
,我需要遍历缓冲区的其余内容以获取更好的路径。另一种情况是
resultBuff[0] = 0
,我不会期望在缓冲区的其他单元格中获得任何值。
我能否使用单独的 MPI_Isend
调用:
如果我找到了更好的路径并将其存储在 resultBuff[1]
到 resultBuff[10]
中:
MPI_Isend((void*)sendBuff, 11, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
如果找不到更好的路径:
MPI_Isend((void*)sendBuff, 1, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
在这两种情况下,我都会使用
MPI_Recv( (void*)resultBuff, 11, MPI_INT, MPI_ANY_SOURCE, 1, MPI_COMM_WORLD, &status);
接收结果。
这个方法可行吗?
如果可行,那么如果我不发送更好的路径,我能节省通信成本吗?
注意:resultBuff
的大小为11。