int MPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status) { char sendtypename[MPI_MAX_OBJECT_NAME], recvtypename[MPI_MAX_OBJECT_NAME]; char commname[MPI_MAX_OBJECT_NAME]; int len; int rank; int size; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); PMPI_Type_get_name(sendtype, sendtypename, &len); PMPI_Type_get_name(sendtype, recvtypename, &len); PMPI_Comm_get_name(comm, commname, &len); PMPI_Type_size(recvtype, &size); fprintf(stderr, "MPI_SENDRECV[%d]: sendbuf %0" PRIxPTR " sendcount %d sendtype %s dest %d sendtag %d\n\t" "recvbuf %0" PRIxPTR " recvcount %d recvtype %s source %d recvtag %d comm %s\n", rank, (uintptr_t) sendbuf, sendcount, sendtypename, dest, sendtag, (uintptr_t) recvbuf, recvcount, recvtypename, source, recvtag, commname); fflush(stderr); memset(recvbuf, 0, recvcount*size); return PMPI_Sendrecv(sendbuf, sendcount, sendtype, dest, sendtag, recvbuf, recvcount, recvtype, source, recvtag, comm, status); }
/*==========================================================================*/ int MPI_Sendrecv( void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status ) { _MPI_COVERAGE(); return PMPI_Sendrecv(sendbuf, sendcount, sendtype, dest, sendtag, recvbuf, recvcount, recvtype, source, recvtag, comm, status); }
int MPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype, int dst, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int src, int recvtag, MPI_Comm comm, MPI_Status * status) { return PMPI_Sendrecv(sendbuf, sendcount, sendtype, dst, sendtag, recvbuf, recvcount, recvtype, src, recvtag, comm, status); }
int MPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status) { int err; ALLOCATE_STATUS(newstatus,1) err=PMPI_Sendrecv(sendbuf,sendcount,sendtype,dest,sendtag, recvbuf,recvcount,recvtype,source,recvtag,comm,newstatus); COPY_STATUS(status,newstatus,1) return err; }
int MPI_Sendrecv(MPE_CONST void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status) { int returnVal; int typesize1; int count; returnVal = PMPI_Sendrecv( sendbuf, sendcount, sendtype, dest, sendtag, recvbuf, recvcount, recvtype, source, recvtag, comm, status ); if (dest != MPI_PROC_NULL && returnVal == MPI_SUCCESS) { MPI_Type_size( sendtype, &typesize1 ); prof_send( procid_1, dest, sendtag, typesize1*sendcount, "MPI_Sendrecv" ); MPI_Get_count( status, MPI_BYTE, &count ); prof_recv( dest, procid_1, recvtag, count, "MPI_Sendrecv" ); } return returnVal; }