Go to the documentation of this file.
19 #ifndef CHANNEL_H_INCLUDED
20 #define CHANNEL_H_INCLUDED
63 int send_init(
int count,
int idir,
int ipm,
void *buf);
64 int recv_init(
int count,
int idir,
int ipm,
void *buf);
85 template<
typename ALLOCATOR>
135 template<
int ALIGNMENT>
162 int append(
const MPI_Request& r);
MPI_Request & get_request()
int wait()
collective wait
unsigned int m_nreq
number of channels to hold.
container_type m_buf
buffer
MPI_Status m_status
handler to MPI status information
MPI_Request m_request
handler to MPI persistent communication
ChannelSet class for a collection of channels.
int append(Channel_impl< T > &c)
MPI-realisation of communicator class implementation.
int append()
implementation of adding the channel (template independent)
static constexpr int tag_offset
int recv_init(int count, int idir, int ipm, void *buf)
ChannelSet(int nchannel=8)
constructor. default number of channels is 8 for upward and downward in 4 dimensions.
Channel_communicator()
constructor.
element_type * m_ptr
pointer to the buffer
int send_init(int count, int idir, int ipm, void *buf)
element_type * ptr() const
accessor to buffer; returns pointer to the first element.
int idx(const int in, const int Nin, const int ist, const int Nx2, const int Ny, const int leo, const int Nvol2, const int ex)
int wait()
wait for completion
int start()
collective start
std::vector< MPI_Request > m_array
a collection of MPI request held in channels.
std::vector< MPI_Status > m_status
a collection of MPI status.
Channel class for asynchronous communication.
std::vector< element_type, allocator_t > container_type
int start()
start asynchronous communication
int send_init(int count, int idir, int ipm)
MPI_Request & get_request()
accessor to MPI_Request
element_type & operator[](unsigned int idx)
accessor to buffer
static constexpr int max_dimension
Channel_communicator::element_type element_type
Channel_communicator m_comm
template independent implementation
virtual ~Channel_communicator()
destructor
int recv_init(int count, int idir, int ipm)
constexpr int alignment_size()
element_type operator[](unsigned int idx) const
accessor to buffer