libgrape-lite
A C++ library for parallel graph processing
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
grape::cuda::GPUAppBase< FRAG_T, CONTEXT_T > Class Template Referenceabstract

GPUAppBase is a base class for GPU apps. Users can process messages in a more flexible way in this kind of app. It contains an GPUMessageManager 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 <gpu_app_base.h>

Public Types

using message_manager_t = GPUMessageManager
 

Public Member Functions

virtual void PEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0
 Partial evaluation to implement.
 
virtual void IncEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0
 Incremental evaluation to implement.
 

Static Public Attributes

static constexpr bool need_split_edges = false
 
static constexpr bool need_build_device_vm = false
 
static constexpr grape::MessageStrategy message_strategy
 
static constexpr grape::LoadStrategy load_strategy
 

Detailed Description

template<typename FRAG_T, typename CONTEXT_T>
class grape::cuda::GPUAppBase< FRAG_T, CONTEXT_T >

GPUAppBase is a base class for GPU apps. Users can process messages in a more flexible way in this kind of app. It contains an GPUMessageManager 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
FRAG_T
CONTEXT_T

Member Function Documentation

◆ IncEval()

template<typename FRAG_T , typename CONTEXT_T >
virtual void grape::cuda::GPUAppBase< FRAG_T, CONTEXT_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
graph
context
messages

◆ PEval()

template<typename FRAG_T , typename CONTEXT_T >
virtual void grape::cuda::GPUAppBase< FRAG_T, CONTEXT_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
graph
context
messages

Member Data Documentation

◆ load_strategy

template<typename FRAG_T , typename CONTEXT_T >
constexpr grape::LoadStrategy grape::cuda::GPUAppBase< FRAG_T, CONTEXT_T >::load_strategy
staticconstexpr
Initial value:
=
grape::LoadStrategy::kOnlyOut

◆ message_strategy

template<typename FRAG_T , typename CONTEXT_T >
constexpr grape::MessageStrategy grape::cuda::GPUAppBase< FRAG_T, CONTEXT_T >::message_strategy
staticconstexpr
Initial value: