我正在编写一个程序来检查使用MPI
库的最短路径。 有两种情况:
要么我找到了更好的路径,如果缓冲区的第一个插槽的状态为resultBuff[0] = 1
,我需要检查缓冲区的其余内容以获得更好的路径。
另一种情况是resultBuff[0] = 0
,我不会在缓冲区的其他单元中删除任何值。MPI_Recv:接收的尺寸不同于发送的尺寸
是否有可能对我来说,使用单独的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
这并没有回答这个问题,它只是围绕它而已。 – Nayish 2011-01-26 11:58:39