| 
    Bridge++
    Version 1.4.4
    
   | 
 
Channel class for asynchronous communication. More...
#include <channel.h>
Classes | |
| struct | bgnet_IDs | 
Public Types | |
| enum | channel_mode { SEND, RECV } | 
| typedef char | element_type | 
| typedef std::vector< element_type > | container_type | 
| typedef char | element_type | 
| data transfer is byte-wise.  More... | |
| typedef std::valarray < element_type >  | container_type | 
| typedef char | element_type | 
| data transfer is byte-wise.  More... | |
Public Member Functions | |
| Channel () | |
| Channel (const int count) | |
| Channel (const int count, const int tag, const channel_mode mode) | |
| virtual | ~Channel () | 
| int | start () | 
| int | wait () | 
| void | set_thread (int, const std::vector< int > &, const std::vector< int > &, const std::vector< int > &) | 
| int | start_thread (int) | 
| int | wait_thread (int) | 
| element_type & | operator[] (unsigned int idx) | 
| const element_type * | ptr () | 
| const element_type * | ptr (int offset) | 
| Channel () | |
| constructor.  More... | |
| Channel (const int count) | |
| constructor with buffer size (count bytes)  More... | |
| virtual | ~Channel () | 
| destructor  More... | |
| int | start () | 
| start asynchronous communication  More... | |
| int | wait () | 
| wait for completion  More... | |
| element_type & | operator[] (unsigned int idx) | 
| accessor to buffer  More... | |
| element_type | operator[] (unsigned int idx) const | 
| accessor to buffer  More... | |
| const element_type * | ptr () | 
| accessor to buffer; returns pointer to the first element.  More... | |
| Channel () | |
| constructor.  More... | |
| Channel (const int count) | |
| constructor with buffer size (count bytes)  More... | |
| Channel (void *buf) | |
| constructor with buffer  More... | |
| virtual | ~Channel () | 
| destructor  More... | |
| int | start () | 
| start asynchronous communication  More... | |
| int | wait () | 
| wait for completion  More... | |
| element_type & | operator[] (unsigned int idx) | 
| accessor to buffer  More... | |
| element_type | operator[] (unsigned int idx) const | 
| accessor to buffer  More... | |
| const element_type * | ptr () | 
| accessor to buffer; returns pointer to the first element.  More... | |
Static Public Member Functions | |
| static void | increment_channel_set_id () | 
| To be called before defining new set of channels for a operator.  More... | |
Private Attributes | |
| int | m_count | 
| int | m_ibuf | 
| bgnet_IDs | m_bgnet_ids | 
| std::vector< bgnet_IDs > | m_bgnet_ids_thread | 
| container_type | m_buf | 
| buffer  More... | |
| MPI_Request | m_request | 
| handler to MPI persistent communication  More... | |
| MPI_Status | m_status | 
| handler to MPI status information  More... | |
| element_type * | m_buf | 
| buffer  More... | |
| bool | m_my_buf | 
| whether buffer is owned by this instance.  More... | |
Static Private Attributes | |
| static std::vector < container_type >  | m_buf | 
| static int | m_set_id = 0 | 
| identifies set of channels.  More... | |
Friends | |
| class | Communicator_impl | 
| class | ChannelSet | 
| class | Communicator | 
Channel class for asynchronous communication.
Channel 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.
An instance of channel class is generated through Communicator send_int() and recv_init() methods. 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 class for single process. This implementation acts similarly to the Channel class with MPI, while practically copys data through the buffer.
Channel class defines communication channel between sender and receiver for asynchronous data transfer. It actually provides a half-channel of sender part or receiver part. Original version of Channel class wraps MPI persistent communication, as well as send/receive buffer.
An instance of channel class is generated through Communicator send_int() and recv_init() methods. To access the buffer, operator[] is provided as if it is an ordinary container or array.
In single process version, start() method copys data to buffer, and wait() method does nothing. [01 Sep 2017 H.Matsufuru]
| typedef std::vector<element_type> Channel::container_type | 
| typedef std::valarray<element_type> Channel::container_type | 
| typedef char Channel::element_type | 
| typedef char Channel::element_type | 
| typedef char Channel::element_type | 
| Channel::Channel | ( | ) | 
Definition at line 95 of file channel.cpp.
| Channel::Channel | ( | const int | count | ) | 
Definition at line 101 of file channel.cpp.
| Channel::Channel | ( | const int | count, | 
| const int | tag, | ||
| const channel_mode | mode | ||
| ) | 
Definition at line 135 of file channel.cpp.
      
  | 
  virtual | 
Definition at line 187 of file channel.cpp.
| Channel::Channel | ( | ) | 
constructor.
| Channel::Channel | ( | const int | count | ) | 
constructor with buffer size (count bytes)
      
  | 
  virtual | 
destructor
| Channel::Channel | ( | ) | 
constructor.
| Channel::Channel | ( | const int | count | ) | 
constructor with buffer size (count bytes)
| Channel::Channel | ( | void * | buf | ) | 
constructor with buffer
Definition at line 92 of file channel.cpp.
      
  | 
  virtual | 
destructor
      
  | 
  static | 
To be called before defining new set of channels for a operator.
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
| void Channel::set_thread | ( | int | Ntask, | 
| const std::vector< int > & | destid, | ||
| const std::vector< int > & | offset, | ||
| const std::vector< int > & | datasize | ||
| ) | 
Definition at line 38 of file channel.cpp.
| int Channel::start | ( | ) | 
start asynchronous communication
| int Channel::start | ( | ) | 
start asynchronous communication
| int Channel::start | ( | ) | 
Definition at line 194 of file channel.cpp.
| int Channel::start_thread | ( | int | itask | ) | 
Definition at line 236 of file channel.cpp.
| int Channel::wait | ( | ) | 
wait for completion
| int Channel::wait | ( | ) | 
wait for completion
| int Channel::wait | ( | ) | 
Definition at line 218 of file channel.cpp.
| int Channel::wait_thread | ( | int | itask | ) | 
Definition at line 261 of file channel.cpp.
      
  | 
  friend | 
      
  | 
  friend | 
      
  | 
  friend | 
      
  | 
  staticprivate | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  staticprivate | 
      
  | 
  private |