25 static inline void recv(
size_t proc ,
size_t tag ,
void * buf,
size_t sz, MPI_Request & req, MPI_Comm ext_comm)
29 MPI_SAFE_CALL(MPI_Irecv(buf,sz,MPI_BYTE, proc, tag , ext_comm,&req));
33 MPI_SAFE_CALL(MPI_Irecv(buf,sz >> 8,MPI_DOUBLE, proc, tag , ext_comm,&req));
47 static inline void recv(
size_t proc ,
size_t tag ,
openfpm::vector<T> & v, MPI_Request & req, MPI_Comm ext_comm)
49 if (v.size() *
sizeof(T) < 2147483647)
51 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size() *
sizeof(T),MPI_BYTE, proc, tag , ext_comm,&req));
55 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(),(v.size() *
sizeof(T)) >> 8,MPI_DOUBLE, proc, tag , ext_comm,&req));
67 static inline void recv(
size_t proc ,
size_t tag ,
openfpm::vector<int> & v, MPI_Request & req, MPI_Comm ext_comm)
69 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_INT, proc, tag , ext_comm,&req));
81 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_UNSIGNED, proc, tag , ext_comm,&req));
91 static inline void recv(
size_t proc ,
size_t tag ,
openfpm::vector<short> & v, MPI_Request & req, MPI_Comm ext_comm)
93 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_SHORT, proc, tag , ext_comm,&req));
105 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_UNSIGNED_SHORT, proc, tag , ext_comm,&req));
115 static inline void recv(
size_t proc ,
size_t tag ,
openfpm::vector<char> & v, MPI_Request & req, MPI_Comm ext_comm)
117 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_CHAR, proc, tag , ext_comm,&req));
129 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_UNSIGNED_CHAR, proc, tag , ext_comm,&req));
139 static inline void recv(
size_t proc ,
size_t tag ,
openfpm::vector<size_t> & v, MPI_Request & req, MPI_Comm ext_comm)
141 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_UNSIGNED_LONG, proc, tag , ext_comm,&req));
153 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_LONG, proc, tag , ext_comm,&req));
163 static inline void recv(
size_t proc ,
size_t tag ,
openfpm::vector<float> & v, MPI_Request & req, MPI_Comm ext_comm)
165 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_FLOAT, proc, tag , ext_comm,&req));
175 static inline void recv(
size_t proc ,
size_t tag ,
openfpm::vector<double> & v, MPI_Request & req, MPI_Comm ext_comm)
177 MPI_SAFE_CALL(MPI_Irecv(v.getPointer(), v.size(),MPI_DOUBLE, proc, tag , ext_comm,&req));
Set of wrapping classing for MPI_Irecv.
static void recv(size_t proc, size_t tag, void *buf, size_t sz, MPI_Request &req, MPI_Comm ext_comm)
General recv for general buffer.
General recv for vector of.
KeyT const ValueT ValueT OffsetIteratorT OffsetIteratorT int
[in] The number of segments that comprise the sorting data