MPI_Request rqst; MPI_Status status; int flag = 0; MPI_Irecv(......, &rqst); // this will populate rqst with info once done // ... some lines later MPI_Request_get_status(rqst, &flag, &status); if( flag ) // if true, the request has completed