libgrape-lite
A C++ library for parallel graph processing
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
grape::Worker< APP_T, MESSAGE_MANAGER_T > Class Template Reference

A Worker manages the computation cycle. More...

#include <worker.h>

Public Types

using fragment_t = typename APP_T::fragment_t
 
using context_t = typename APP_T::context_t
 
using message_manager_t = MESSAGE_MANAGER_T
 

Public Member Functions

 Worker (std::shared_ptr< APP_T > app, std::shared_ptr< fragment_t > graph)
 
 Worker (std::shared_ptr< APP_T > app, std::shared_ptr< fragment_t > graph, std::shared_ptr< context_t > context)
 
void Init (const CommSpec &comm_spec, const ParallelEngineSpec &pe_spec=DefaultParallelEngineSpec())
 
void Finalize ()
 
template<class... Args>
void Query (Args &&... args)
 
std::shared_ptr< context_t > GetContext ()
 
const TerminateInfoGetTerminateInfo () const
 
void Output (std::ostream &os)
 

Private Member Functions

template<typename T = message_manager_t>
std::enable_if< std::is_same< T, ParallelMessageManagerOpt >::value &&std::is_base_of< ParallelAppBase< fragment_t, context_t, T >, APP_T >::value >::type initPool (const ParallelEngineSpec &pe_spec)
 
template<typename T = message_manager_t>
std::enable_if< !std::is_same< T, ParallelMessageManagerOpt >::value||!std::is_base_of< ParallelAppBase< fragment_t, context_t, T >, APP_T >::value >::type initPool (const ParallelEngineSpec &pe_spec)
 
template<typename T = message_manager_t>
std::enable_if< std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type runPEval ()
 
template<typename T = message_manager_t>
std::enable_if< !std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type runPEval ()
 
template<typename T = message_manager_t>
std::enable_if< std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type runIncEval ()
 
template<typename T = message_manager_t>
std::enable_if< !std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type runIncEval ()
 
template<typename T = context_t>
std::enable_if< std::is_base_of< MutationContext< fragment_t >, T >::value >::type processMutation ()
 
template<typename T = context_t>
std::enable_if< !std::is_base_of< MutationContext< fragment_t >, T >::value >::type processMutation ()
 

Private Attributes

std::shared_ptr< APP_T > app_
 
std::shared_ptr< context_t > context_
 
std::shared_ptr< fragment_t > fragment_
 
message_manager_t messages_
 
CommSpec comm_spec_
 
PrepareConf prepare_conf_
 
ParallelEngineSpec pe_spec_
 

Detailed Description

template<typename APP_T, typename MESSAGE_MANAGER_T>
class grape::Worker< APP_T, MESSAGE_MANAGER_T >

A Worker manages the computation cycle.

Template Parameters
APP_T
MESSAGE_MANAGER_T