Public Types | Public Member Functions | Static Public Member Functions

graphlab::clustered_priority_scheduler< Graph > Class Template Reference
[Schedulers]

#include <clustered_priority_scheduler.hpp>

Inheritance diagram for graphlab::clustered_priority_scheduler< Graph >:
graphlab::ischeduler< Graph >

List of all members.

Public Types

typedef Graph graph_type
typedef ischeduler< Graph > base
typedef base::iengine_type iengine_type
typedef base::update_task_type update_task_type
typedef base::update_function_type update_function_type
typedef base::callback_type callback_type
typedef base::monitor_type monitor_type
typedef shared_termination terminator_type

Public Member Functions

 clustered_priority_scheduler (iengine_type *engine, Graph &_g, size_t ncpus_)
callback_typeget_callback (size_t cpuid)
sched_status::status_enum get_next_task (size_t cpuid, update_task_type &ret_task)
void start ()
void get_next_list (size_t cpuid)
void add_task (update_task_type task, double priority)
void add_tasks (const std::vector< vertex_id_t > &vertices, update_function_type func, double priority)
void add_task_to_all (update_function_type func, double priority)
void completed_task (size_t cpuid, const update_task_type &task)
void set_options (const scheduler_options &opts)
terminator_typeget_terminator ()

Static Public Member Functions

static void print_options_help (std::ostream &out)

Detailed Description

template<typename Graph>
class graphlab::clustered_priority_scheduler< Graph >

This scheduler creates a priority queue where each element in the priority queue is a fixed subset of vertices in the graph. The graph is first partitioned into N partitions. Each partition then forms an entry in the priority queue, where the priority of the partition is the max priority of any task of any vertex in the partition.

Definition at line 55 of file clustered_priority_scheduler.hpp.


Member Typedef Documentation

template<typename Graph >
typedef shared_termination graphlab::clustered_priority_scheduler< Graph >::terminator_type

Defines the preferred terminator algorithm

Reimplemented from graphlab::ischeduler< Graph >.

Definition at line 66 of file clustered_priority_scheduler.hpp.


Member Function Documentation

template<typename Graph >
void graphlab::clustered_priority_scheduler< Graph >::add_task ( update_task_type  task,
double  priority 
) [inline, virtual]

Adds an update task with a particular priority. This function may be called at anytime.

Implements graphlab::ischeduler< Graph >.

Definition at line 273 of file clustered_priority_scheduler.hpp.

template<typename Graph >
void graphlab::clustered_priority_scheduler< Graph >::completed_task ( size_t  cpuid,
const update_task_type &  task 
) [inline, virtual]

This is called after a task has been executed

Implements graphlab::ischeduler< Graph >.

Definition at line 306 of file clustered_priority_scheduler.hpp.

template<typename Graph >
callback_type& graphlab::clustered_priority_scheduler< Graph >::get_callback ( size_t  cpuid  )  [inline, virtual]

This function returns a reference to the scheduling callback to be used for a particular cpu. This callback will be passed to update functions, and is the main interface which allow the update functions to create new tasks.

Implements graphlab::ischeduler< Graph >.

Definition at line 178 of file clustered_priority_scheduler.hpp.

template<typename Graph >
sched_status::status_enum graphlab::clustered_priority_scheduler< Graph >::get_next_task ( size_t  cpuid,
update_task_type &  ret_task 
) [inline, virtual]

Get the next element in the queue

Implements graphlab::ischeduler< Graph >.

Definition at line 184 of file clustered_priority_scheduler.hpp.

template<typename Graph >
terminator_type& graphlab::clustered_priority_scheduler< Graph >::get_terminator (  )  [inline]

Returns a reference to the terminator

Reimplemented from graphlab::ischeduler< Graph >.

Definition at line 351 of file clustered_priority_scheduler.hpp.

template<typename Graph >
void graphlab::clustered_priority_scheduler< Graph >::start (  )  [inline, virtual]

Called by engine before starting the schedule. This function will only be called once throughout the lifetime of the scheduler.

Implements graphlab::ischeduler< Graph >.

Definition at line 240 of file clustered_priority_scheduler.hpp.


The documentation for this class was generated from the following file: