Bridge++
Ver. 2.0.2
|
Channel class for asynchronous communication. More...
#include <channel.h>
Public Types | |
typedef char | element_type |
typedef char | element_type |
typedef char | element_type |
Public Member Functions | |
Channel_communicator () | |
constructor. More... | |
virtual | ~Channel_communicator () |
destructor More... | |
int | start () |
start asynchronous communication More... | |
int | wait () |
wait for completion More... | |
int | send_init (int count, int idir, int ipm, void *buf) |
int | recv_init (int count, int idir, int ipm, void *buf) |
MPI_Request & | get_request () |
accessor to MPI_Request More... | |
Channel_communicator () | |
constructor. More... | |
virtual | ~Channel_communicator () |
destructor More... | |
int | start () |
start asynchronous communication More... | |
int | wait () |
wait for completion More... | |
int | send_init (int count, int idir, int ipm, void *buf) |
int | recv_init (int count, int idir, int ipm, void *buf) |
MPI_Request & | get_request () |
accessor to MPI_Request More... | |
Channel_communicator () | |
constructor. More... | |
virtual | ~Channel_communicator () |
destructor More... | |
int | start () |
start asynchronous communication More... | |
int | wait () |
wait for completion More... | |
int | send_init (int count, int idir, int ipm, void *buf) |
int | recv_init (int count, int idir, int ipm, void *buf) |
Static Public Attributes | |
static constexpr int | max_dimension = 8 |
Private Attributes | |
MPI_Request | m_request |
handler to MPI persistent communication More... | |
MPI_Status | m_status |
handler to MPI status information More... | |
Static Private Attributes | |
static int | send_num [8] = { 0, 0, 0, 0, 0, 0, 0, 0 } |
static int | recv_num [8] = { 0, 0, 0, 0, 0, 0, 0, 0 } |
static constexpr int | tag_offset = 1000 |
Friends | |
class | Communicator_impl |
Channel class for asynchronous communication.
Channel_impl class defines communication channel between sender and receiver for asynchronous data transfer. It actually provides a half-channel of sender part or receiver part. This class wraps MPI persistent communication, as well as send/receive buffer. The template free communicator part is defined in Communicator_channel class.
To access the buffer, operator[] is provided as if it is an ordinary container or array.
start() method to start async data transfer, and wait() method to wait for the completion of operation. the channel instance will be re-used repeatedly for the same communication channel once it is created.
Channel_impl class defines communication channel between sender and receiver for asynchronous data transfer. It actually provides a half-channel of sender part or receiver part. This class wraps MPI persistent communication, as well as send/receive buffer. The template free communicator part is defined in Channel_communicator class.
To access the buffer, operator[] is provided as if it is an ordinary container or array.
start() method to start async data transfer, and wait() method to wait for the completion of operation. the channel instance will be re-used repeatedly for the same communication channel once it is created.
typedef char Channel_communicator::element_type |
typedef char Channel_communicator::element_type |
typedef char Channel_communicator::element_type |
Channel_communicator::Channel_communicator | ( | ) |
constructor.
Definition at line 90 of file channel.cpp.
|
virtual |
destructor
Definition at line 97 of file channel.cpp.
Channel_communicator::Channel_communicator | ( | ) |
constructor.
|
virtual |
destructor
Channel_communicator::Channel_communicator | ( | ) |
constructor.
|
virtual |
destructor
|
inline |
|
inline |
int Channel_communicator::recv_init | ( | int | count, |
int | idir, | ||
int | ipm, | ||
void * | buf | ||
) |
int Channel_communicator::recv_init | ( | int | count, |
int | idir, | ||
int | ipm, | ||
void * | buf | ||
) |
int Channel_communicator::recv_init | ( | int | count, |
int | idir, | ||
int | ipm, | ||
void * | buf | ||
) |
recv_init() method creates a channel instance that wraps persistent communication object to receive data from neighbour node located at upward or downward (specified by ipm) in the direction idir. count represents size of buffer by number of elements (bytes).
Definition at line 67 of file channel.cpp.
int Channel_communicator::send_init | ( | int | count, |
int | idir, | ||
int | ipm, | ||
void * | buf | ||
) |
int Channel_communicator::send_init | ( | int | count, |
int | idir, | ||
int | ipm, | ||
void * | buf | ||
) |
int Channel_communicator::send_init | ( | int | count, |
int | idir, | ||
int | ipm, | ||
void * | buf | ||
) |
send_init() method creates a channel instance that wraps persistent communication object to send data to neighbour node located at upward or downward (specified by ipm) in the direction idir. count represents size of buffer by number of elements (bytes).
Definition at line 37 of file channel.cpp.
int Channel_communicator::start | ( | ) |
start asynchronous communication
int Channel_communicator::start | ( | ) |
start asynchronous communication
int Channel_communicator::start | ( | ) |
start asynchronous communication
Definition at line 105 of file channel.cpp.
int Channel_communicator::wait | ( | ) |
wait for completion
int Channel_communicator::wait | ( | ) |
wait for completion
int Channel_communicator::wait | ( | ) |
wait for completion
Definition at line 113 of file channel.cpp.
|
friend |
|
private |
|
private |
|
staticconstexpr |
|
staticprivate |
|
staticprivate |
|
staticconstexprprivate |