MPI_Isend & MPI_Send 创建临时通信句柄
在前面的文章中举了例子,我们使用MPI_Isend接口发送数据时,有个传出参数request,该参数是创建的通信句柄,
实际上该句柄是一个临时句柄,即只用于一次性发送数据的场景,如不能在循环体中多次使用:
int main(int argc, char *argv[])
{
int err = MPI_Init(&argc,&argv);
int rank,size;
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
int data = 100;
//将在发送进程的MPI_Isend创建初始化,数据接收进程中使用该句柄
MPI_Request request;
MPI_Status status;
if(rank > 0)
{
MPI_Irecv(&data,1,MPI_INT,rank-1,0,MPI_COMM_WORLD,&request);
std::cout << "rank = " << rank << " recived data is : " << data << std