ParallelAppBase is a base class for parallel apps. Users can process messages in a more flexible way in this kind of app. It contains an ParallelMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time.
More...
#include <parallel_app_base.h>
|
using | message_manager_t = MESSAGE_MANAGER_T |
|
|
virtual void | PEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
| Partial evaluation to implement. More...
|
|
virtual void | IncEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
| Incremental evaluation to implement. More...
|
|
virtual void | EstimateMessageSize (const FRAG_T &graph, size_t &send_size, size_t &recv_size) |
|
|
static constexpr bool | need_split_edges = false |
|
static constexpr bool | need_split_edges_by_fragment = false |
|
static constexpr MessageStrategy | message_strategy |
|
static constexpr LoadStrategy | load_strategy = LoadStrategy::kOnlyOut |
|
template<typename FRAG_T, typename CONTEXT_T, typename MESSAGE_MANAGER_T = ParallelMessageManager>
class grape::ParallelAppBase< FRAG_T, CONTEXT_T, MESSAGE_MANAGER_T >
ParallelAppBase is a base class for parallel apps. Users can process messages in a more flexible way in this kind of app. It contains an ParallelMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time.
- Template Parameters
-
◆ IncEval()
template<typename FRAG_T , typename CONTEXT_T , typename MESSAGE_MANAGER_T = ParallelMessageManager>
virtual void grape::ParallelAppBase< FRAG_T, CONTEXT_T, MESSAGE_MANAGER_T >::IncEval |
( |
const FRAG_T & |
graph, |
|
|
CONTEXT_T & |
context, |
|
|
message_manager_t & |
messages |
|
) |
| |
|
pure virtual |
Incremental evaluation to implement.
- Note
- : This pure virtual function works as an interface, instructing users to implement in the specific app. The IncEval in the inherited apps would be invoked directly, not via virtual functions.
- Parameters
-
◆ PEval()
template<typename FRAG_T , typename CONTEXT_T , typename MESSAGE_MANAGER_T = ParallelMessageManager>
virtual void grape::ParallelAppBase< FRAG_T, CONTEXT_T, MESSAGE_MANAGER_T >::PEval |
( |
const FRAG_T & |
graph, |
|
|
CONTEXT_T & |
context, |
|
|
message_manager_t & |
messages |
|
) |
| |
|
pure virtual |
Partial evaluation to implement.
- Note
- : This pure virtual function works as an interface, instructing users to implement in the specific app. The PEval in the inherited apps would be invoked directly, not via virtual functions.
- Parameters
-
◆ message_strategy
template<typename FRAG_T , typename CONTEXT_T , typename MESSAGE_MANAGER_T = ParallelMessageManager>
Initial value:=
@ kSyncOnOuterVertex
from a to b, a to c;