19 static inline void send(
size_t proc ,
size_t tag ,
const void * buf,
size_t sz, MPI_Request & req)
23 MPI_Isend(buf, sz,MPI_BYTE, proc, tag , MPI_COMM_WORLD,&req);
27 MPI_Isend(buf, sz >> 3 ,MPI_DOUBLE, proc, tag , MPI_COMM_WORLD,&req);
39template<
typename T,
typename Mem,
template<
typename>
class gr>
class MPI_IsendW
44 if (v.size() *
sizeof(T) <= 2147483647)
46 MPI_Isend(v.getPointer(), v.size() *
sizeof(T),MPI_BYTE, proc, tag , MPI_COMM_WORLD,&req);
50 MPI_Isend(v.getPointer(), (v.size() *
sizeof(T)) >> 3,MPI_DOUBLE, proc, tag , MPI_COMM_WORLD,&req);
59template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<int,Mem,gr>
64 MPI_Isend(v.getPointer(), v.size(),MPI_INT, proc, tag , MPI_COMM_WORLD,&req);
71template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<unsigned int,Mem,gr>
76 MPI_Isend(v.getPointer(), v.size(),MPI_UNSIGNED, proc, tag , MPI_COMM_WORLD,&req);
83template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<short,Mem,gr>
88 MPI_Isend(v.getPointer(), v.size(),MPI_SHORT, proc, tag , MPI_COMM_WORLD,&req);
95template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<unsigned short,Mem,gr>
100 MPI_Isend(v.getPointer(), v.size(),MPI_UNSIGNED_SHORT, proc, tag , MPI_COMM_WORLD,&req);
107template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<char,Mem,gr>
112 MPI_Isend(v.getPointer(), v.size(),MPI_CHAR, proc, tag , MPI_COMM_WORLD,&req);
119template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<unsigned char,Mem,gr>
124 MPI_Isend(v.getPointer(), v.size(),MPI_UNSIGNED_CHAR, proc, tag , MPI_COMM_WORLD,&req);
131template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<size_t,Mem,gr>
136 MPI_Isend(v.getPointer(), v.size(),MPI_UNSIGNED_LONG, proc, tag , MPI_COMM_WORLD,&req);
143template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<long int,Mem,gr>
148 MPI_Isend(v.getPointer(), v.size(),MPI_LONG, proc, tag , MPI_COMM_WORLD,&req);
155template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<float,Mem,gr>
160 MPI_Isend(v.getPointer(), v.size(),MPI_FLOAT, proc, tag , MPI_COMM_WORLD,&req);
167template<
typename Mem,
template<
typename>
class gr>
class MPI_IsendW<double,Mem,gr>
172 MPI_Isend(v.getPointer(), v.size(),MPI_DOUBLE, proc, tag , MPI_COMM_WORLD,&req);
Set of wrapping classing for MPI_Isend.
General send for a vector of any type.
Implementation of 1-D std::vector like structure.