Distributed Ranges
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dr::communicator Class Reference

Public Member Functions

 communicator (MPI_Comm comm=MPI_COMM_WORLD)
 
auto size () const
 
auto rank () const
 
auto prev () const
 
auto next () const
 
auto first () const
 
auto last () const
 
MPI_Comm mpi_comm () const
 
void barrier () const
 
void bcast (void *src, std::size_t count, std::size_t root) const
 
void scatter (const void *src, void *dst, std::size_t count, std::size_t root) const
 
template<typename T >
void scatter (const std::span< T > src, T &dst, std::size_t root) const
 
void scatterv (const void *src, int *counts, int *offsets, void *dst, int dst_count, std::size_t root) const
 
void gather (const void *src, void *dst, std::size_t count, std::size_t root) const
 
template<typename T >
void gather (const T *src, T *dst, std::size_t count, std::size_t root) const
 
template<typename T >
void gather (const T &src, std::span< T > dst, std::size_t root) const
 
template<typename T >
void all_gather (const T *src, T *dst, std::size_t count) const
 
template<typename T >
void all_gather (const T &src, std::vector< T > &dst) const
 
template<rng::contiguous_range R>
void all_gather (const R &src, R &dst) const
 
template<typename T >
void i_all_gather (const T *src, T *dst, std::size_t count, MPI_Request *req) const
 
template<typename T >
void i_all_gather (const T &src, std::vector< T > &dst, MPI_Request *req) const
 
void gatherv (const void *src, MPI_Count *counts, MPI_Aint *offsets, void *dst, std::size_t root) const
 
template<typename T >
void isend (const T *data, std::size_t count, std::size_t dst_rank, auto tag, MPI_Request *request) const
 
template<typename T >
void isend (const T *data, std::size_t count, std::size_t dst_rank, MPI_Request *request) const
 
template<rng::contiguous_range R>
void isend (const R &data, std::size_t dst_rank, auto tag, MPI_Request *request) const
 
template<rng::contiguous_range R>
void isend (const R &data, std::size_t dst_rank, MPI_Request *request) const
 
template<typename T >
void irecv (T *data, std::size_t size, std::size_t src_rank, auto tag, MPI_Request *request) const
 
template<typename T >
void irecv (T *data, std::size_t size, std::size_t src_rank, MPI_Request *request) const
 
template<rng::contiguous_range R>
void irecv (R &data, std::size_t src_rank, int tag, MPI_Request *request) const
 
template<rng::contiguous_range R>
void irecv (R &data, std::size_t src_rank, MPI_Request *request) const
 
void wait (MPI_Request request) const
 
void waitall (std::size_t count, MPI_Request *requests) const
 
template<rng::contiguous_range R>
void alltoall (const R &sendr, R &recvr, std::size_t count)
 
template<typename T >
void alltoall (const T *send, T *receive, std::size_t count)
 
template<rng::contiguous_range SendR, rng::contiguous_range RecvR>
void alltoallv (const SendR &sendbuf, const std::vector< std::size_t > &sendcnt, const std::vector< std::size_t > &senddsp, RecvR &recvbuf, const std::vector< std::size_t > &recvcnt, const std::vector< std::size_t > &recvdsp)
 
bool operator== (const communicator &other) const
 

The documentation for this class was generated from the following file: