|
void | Init (MPI_Comm comm) override |
| Inherit.
|
|
void | Start () override |
| Inherit.
|
|
void | StartARound () override |
| Inherit.
|
|
void | FinishARound () override |
| Inherit.
|
|
bool | ToTerminate () override |
| Inherit.
|
|
void | Finalize () override |
| Inherit.
|
|
void | ForceContinue () override |
| Inherit.
|
|
void | ForceTerminate (const std::string &terminate_info) override |
| Inherit.
|
|
const TerminateInfo & | GetTerminateInfo () const override |
| Inherit.
|
|
size_t | GetMsgSize () const override |
| Inherit.
|
|
void | InitChannels (int channel_num=1, size_t block_size=default_msg_send_block_size, size_t block_cap=default_msg_send_block_capacity) |
| Init a set of channels, each channel is a thread local message buffer. More...
|
|
std::vector< ThreadLocalMessageBuffer< ParallelMessageManager > > & | Channels () |
|
void | SendRawMsgByFid (fid_t fid, InArchive &&arc) |
| Send a buffer to a fragment. More...
|
|
template<typename MESSAGE_T > |
void | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg, int channel_id=0) |
| Send message to a fragment. More...
|
|
template<typename GRAPH_T , typename MESSAGE_T > |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
| SyncStateOnOuterVertex on a channel. More...
|
|
template<typename GRAPH_T > |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, int channel_id=0) |
|
template<typename GRAPH_T , typename MESSAGE_T > |
void | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
| SendMsgThroughIEdges on a channel. More...
|
|
template<typename GRAPH_T , typename MESSAGE_T > |
void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
| SendMsgThroughOEdges on a channel. More...
|
|
template<typename GRAPH_T , typename MESSAGE_T > |
void | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
| SendMsgThroughEdges on a channel. More...
|
|
bool | GetMessageInBuffer (MessageInBuffer &buf) |
| Get a bunch of messages, stored in a MessageInBuffer. More...
|
|
template<typename GRAPH_T , typename MESSAGE_T , typename FUNC_T > |
void | ParallelProcess (int thread_num, const GRAPH_T &frag, const FUNC_T &func) |
| Parallel process all incoming messages with given function of last round. More...
|
|
template<typename MESSAGE_T , typename FUNC_T > |
void | ParallelProcess (int thread_num, const FUNC_T &func) |
| Parallel process all incoming messages with given function of last round. More...
|
|
A kind of parallel message manager.
ParallelMessageManager support multi-threads to send messages concurrently with channels. Each channel contains a thread local message buffer.
For each thread local message buffer, when accumulated a given amount of messages, the buffer will be sent through MPI.
After a round of evaluation, there is a global barrier to determine whether the fixed point is reached.