8#ifndef OPENFPM_VCLUSTER_SRC_MPI_WRAPPER_MPI_IBCASTW_HPP_
9#define OPENFPM_VCLUSTER_SRC_MPI_WRAPPER_MPI_IBCASTW_HPP_
36 static inline void bcast(
size_t proc ,
void * buf,
size_t sz, MPI_Request & req)
38 MPI_SAFE_CALL(MPI_Ibcast(buf,sz,MPI_BYTE, proc , MPI_COMM_WORLD,&req));
53 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size() *
sizeof(T),MPI_BYTE, proc , MPI_COMM_WORLD,&req));
66 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_INT, proc , MPI_COMM_WORLD,&req));
78 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_UNSIGNED, proc , MPI_COMM_WORLD,&req));
90 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_SHORT, proc , MPI_COMM_WORLD,&req));
102 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_UNSIGNED_SHORT, proc , MPI_COMM_WORLD,&req));
114 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_CHAR, proc , MPI_COMM_WORLD,&req));
126 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_UNSIGNED_CHAR, proc , MPI_COMM_WORLD,&req));
138 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_UNSIGNED_LONG, proc , MPI_COMM_WORLD,&req));
150 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_LONG, proc , MPI_COMM_WORLD,&req));
162 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_FLOAT, proc , MPI_COMM_WORLD,&req));
174 MPI_SAFE_CALL(MPI_Ibcast(v.getPointer(), v.size(),MPI_DOUBLE, proc , MPI_COMM_WORLD,&req));
186template<
typename vect>
213 typedef typename boost::mpl::at<typename vect::value_type::type,T>::type send_type;
219 MPI_IBcastWB::bcast(
root,&
send.template get<T::value>(0),
send.size()*
sizeof(send_type),
req.last());
223template<
bool is_lin_or_
inte>
226 template<
typename T,
typename Mem,
template<
typename>
class layout_base >
242 template<
typename T,
typename Mem,
template<
typename>
class layout_base >
249 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,T::max_prop>>(bc);
Set of wrapping classing for MPI_Irecv.
General recv for vector of.
Implementation of 1-D std::vector like structure.
this class is a functor for "for_each" algorithm
void operator()(T &t)
It call the copy function for each property.
vect & send
vector to broadcast
openfpm::vector< MPI_Request > & req
vector of requests
bcast_inte_impl(vect &send, openfpm::vector< MPI_Request > &req, size_t root)
constructor
size_t root
root processor