inline MPI_Request MyMPI_IRecv (FlatArray<T, BASE> s, int dest) { MPI_Request request; MPI_Irecv( &s.First(), s.Size(), MyGetMPIType<T>(), dest, 1, MPI_COMM_WORLD, &request); return request; // MPI_Request_free (&request); }
inline void MyMPI_Recv ( FlatArray<T, BASE> s, int src, int tag) { MPI_Status status; MPI_Recv( &s.First(), s.Size(), MyGetMPIType<T>(), src, tag, MPI_COMM_WORLD, &status); }
inline void MyMPI_Send (FlatArray<T, BASE> s, int dest, int tag) { MPI_Send( &s.First(), s.Size(), MyGetMPIType<T>(), dest, tag, MPI_COMM_WORLD); }
inline MPI_Request MyMPI_IRecv (FlatArray<T, BASE> s, int dest, int tag, MPI_Comm comm = MPI_COMM_WORLD) { MPI_Request request; MPI_Irecv( &s.First(), s.Size(), MyGetMPIType<T>(), dest, tag, comm, &request); return request; }
inline void MyMPI_IRecvTag (FlatArray<T, BASE> s, int dest, int tag, MPI_Request & request) { MPI_Irecv( &s.First(), s.Size(), MyGetMPIType<T>(), dest, tag, MPI_COMM_WORLD, & request); }
inline void MyMPI_ISend (FlatArray<T, BASE> s, int dest, MPI_Request & request) { MPI_Isend( &s.First(), s.Size(), MyGetMPIType<T>(), dest, 1, MPI_COMM_WORLD, & request); }