21 assert(ipm == 1 || ipm == -1);
25 printf(
"%s: allocate channel failed.\n", __func__);
38 assert(ipm == 1 || ipm == -1);
42 printf(
"%s: allocate channel failed.\n", __func__);
55 assert(ipm == 1 || ipm == -1);
59 printf(
"%s: allocate channel failed.\n", __func__);
72 assert(ipm == 1 || ipm == -1);
76 printf(
"%s: allocate channel failed.\n", __func__);
int wait()
wait for completion
int start()
collective start
int start()
start asynchronous communication
static Channel * recv_init(int count, int idir, int ipm)
bool m_my_buf
whether buffer is owned by this instance.
container_type m_buf
buffer
int append(Channel *const p)
append channel to the set. there is no way to remove a channel.
Channel class for asynchronous communication.
int wait()
collective wait
char element_type
data transfer is byte-wise.
virtual ~Channel()
destructor
static Channel * send_init(int count, int idir, int ipm)
ChannelSet(int nchannel=8)
constructor. default number of channels is 8 for upward and downward in 4 dimensions.