IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
ippl::mpi::Communicator Class Reference
+ Inheritance diagram for ippl::mpi::Communicator:
+ Collaboration diagram for ippl::mpi::Communicator:

Public Types

template<typename MemorySpace = Kokkos::DefaultExecutionSpace::memory_space>
using archive_type = detail::Archive< MemorySpace >
 
template<typename MemorySpace = Kokkos::DefaultExecutionSpace::memory_space>
using buffer_type = std::shared_ptr< archive_type< MemorySpace > >
 
using size_type = detail::size_type
 

Public Member Functions

 Communicator (MPI_Comm comm)
 
Communicatoroperator= (MPI_Comm comm)
 
Communicator split (int color, int key) const
 
 operator const MPI_Comm & () const noexcept
 
int size () const noexcept
 
int rank () const noexcept
 
void barrier ()
 
void abort (int errorcode=-1)
 
template<typename T >
void send (const T &buffer, int count, int dest, int tag)
 
template<typename T >
void send (const T *buffer, int count, int dest, int tag)
 
template<typename T >
void recv (T &output, int count, int source, int tag, Status &status)
 
template<typename T >
void recv (T *output, int count, int source, int tag, Status &status)
 
void probe (int source, int tag, Status &status)
 
template<typename T >
void isend (const T &buffer, int count, int dest, int tag, Request &request)
 
template<typename T >
void isend (const T *buffer, int count, int dest, int tag, Request &request)
 
template<typename T >
void irecv (T &buffer, int count, int source, int tag, Request &request)
 
template<typename T >
void irecv (T *buffer, int count, int source, int tag, Request &request)
 
bool iprobe (int source, int tag, Status &status)
 
template<typename T >
void gather (const T *input, T *output, int count, int root=0)
 
template<typename T >
void scatter (const T *input, T *output, int count, int root=0)
 
template<typename T , class Op >
void reduce (const T *input, T *output, int count, Op op, int root=0)
 
template<typename T , class Op >
void reduce (const T &input, T &output, int count, Op op, int root=0)
 
template<typename T , class Op >
void allreduce (const T *input, T *output, int count, Op op)
 
template<typename T , class Op >
void allreduce (const T &input, T &output, int count, Op op)
 
template<typename T , class Op >
void allreduce (T *inout, int count, Op op)
 
template<typename T , class Op >
void allreduce (T &inout, int count, Op op)
 
double getDefaultOverallocation () const
 
void setDefaultOverallocation (double factor)
 
template<typename MemorySpace = Kokkos::DefaultExecutionSpace::memory_space, typename T = char>
buffer_type< MemorySpace > getBuffer (size_type size, double overallocation=1.0)
 
void deleteAllBuffers ()
 
void freeAllBuffers ()
 
template<typename MemorySpace = Kokkos::DefaultExecutionSpace::memory_space>
void freeBuffer (buffer_type< MemorySpace > buffer)
 
const MPI_Comm & getCommunicator () const noexcept
 
template<class Buffer , typename Archive >
void recv (int src, int tag, Buffer &buffer, Archive &ar, size_type msize, size_type nrecvs)
 
template<class Buffer , typename Archive >
void isend (int dest, int tag, Buffer &buffer, Archive &ar, MPI_Request &request, size_type nsends)
 
template<typename Archive >
void irecv (int src, int tag, Archive &ar, MPI_Request &request, size_type msize)
 
void printLogs (const std::string &filename)
 
std::shared_ptr< buffer_handler_type > get_buffer_handler_instance ()
 
- Public Member Functions inherited from TagMaker
int next_tag (int t, int s=DEF_CYCLE_SIZE)
 
int preceding_tag (int t, int s=DEF_CYCLE_SIZE)
 
int following_tag (int t, int s=DEF_CYCLE_SIZE)
 
int current_tag (int t, int s=DEF_CYCLE_SIZE)
 
int reset_tag (int t, int s=DEF_CYCLE_SIZE)
 

Protected Attributes

std::shared_ptr< MPI_Comm > comm_m
 
int size_m
 
int rank_m
 

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