14 #ifndef CHANNEL_INCLUDED
15 #define CHANNEL_INCLUDED
std::valarray< element_type > container_type
int wait()
wait for completion
MPI_Status m_status
handler to MPI status information
element_type operator[](unsigned int idx) const
accessor to buffer
int start()
collective start
int start()
start asynchronous communication
container_type m_buf
buffer
int append(Channel *const p)
append channel to the set. there is no way to remove a channel.
std::vector< MPI_Request > m_array
a collection of MPI request held in channels.
Channel class for asynchronous communication.
MPI_Request m_request
handler to MPI persistent communication
ChannelSet class for a collection of channels.
unsigned int m_nreq
number of channels to hold.
int wait()
collective wait
element_type & operator[](unsigned int idx)
accessor to buffer
static const int max_dimension
const element_type * ptr()
accessor to buffer; returns pointer to the first element.
std::vector< MPI_Status > m_status
a collection of MPI status.
char element_type
data transfer is byte-wise.
virtual ~Channel()
destructor
MPI-realisation of communicator class implementation.
ChannelSet(int nchannel=8)
constructor. default number of channels is 8 for upward and downward in 4 dimensions.