C++ 按要求处理MPI数据';已接收的s(管道衬里)

C++ 按要求处理MPI数据';已接收的s(管道衬里),c++,mpi,C++,Mpi,假设我有一个来自机器A的带有巨大消息的MPI_发送,而在另一台机器上(例如,B),它是通过MPI_Recv(或者分别是MPI_isend和MPI_irecv)接收的。目前,B仅在所有数据到达后才处理接收到的数据;是否有MPI功能允许我在接收数据时开始处理某些数据?不太可能。您可以拥有一个最小大小的缓冲区,然后开始通过该缓冲区发送数据,并在接收数据时使用它 您可能希望了解MPI对持久通信请求的支持,并创建一些适合您的应用程序的更高级别API 我见过的所有使用管道的情况都是使用MPI\u Send(

假设我有一个来自机器A的带有巨大消息的MPI_发送,而在另一台机器上(例如,B),它是通过MPI_Recv(或者分别是MPI_isend和MPI_irecv)接收的。目前,B仅在所有数据到达后才处理接收到的数据;是否有MPI功能允许我在接收数据时开始处理某些数据?

不太可能。您可以拥有一个最小大小的缓冲区,然后开始通过该缓冲区发送数据,并在接收数据时使用它

您可能希望了解MPI对持久通信请求的支持,并创建一些适合您的应用程序的更高级别API


我见过的所有使用管道的情况都是使用
MPI\u Send()
/
MPI\u Recv()
对或
MPI\u Sendrecv()

以较小的块发送有什么问题吗?@eduffy这不意味着我必须多次发送和接收吗?在这种情况下,通信开销不是太昂贵了吗?谢谢