Interface Documentation
Version: 2.-1 (devel)
Public Types | Public Member Functions | Static Public Member Functions | List of all members
flecsi::control::control< CONTROL_POLICY > Struct Template Reference

#include <control.hh>

Inheritance diagram for flecsi::control::control< CONTROL_POLICY >:
Inheritance graph
[legend]
Collaboration diagram for flecsi::control::control< CONTROL_POLICY >:
Collaboration graph
[legend]

Public Types

using dag_t = flecsi::utils::dag< typename CONTROL_POLICY::node_t >
 
using node_t = typename dag_t::node_t
 
using point_walker_t = point_walker< control< CONTROL_POLICY > >
 

Public Member Functions

int exit_status () const
 
int & exit_status ()
 
dag_tcontrol_point_map (size_t control_point, std::string const &label="default")
 
std::vector< node_t > const & sorted_control_point_map (size_t control_point)
 

Static Public Member Functions

static controlinstance ()
 
static int execute (int argc, char **argv)
 

Detailed Description

template<typename CONTROL_POLICY>
struct flecsi::control::control< CONTROL_POLICY >

The control type provides a control model for specifying a set of control points as a coarse-grained control flow graph, with each node of the graph specifying a set of actions as a directed acyclic graph (DAG). The actions under a control point DAG are topologically sorted to respect dependency edges, which can be specified through the dag interface.

If Graphviz support is enabled, the control flow graph and its DAG nodes can be written to a graphviz file that can be compiled and viewed using the dot program.

Member Function Documentation

◆ control_point_map()

template<typename CONTROL_POLICY >
dag_t& flecsi::control::control< CONTROL_POLICY >::control_point_map ( size_t  control_point,
std::string const &  label = "default" 
)
inline

Return the control map for the given control point.

Parameters
control_pointThe control point id or control point. Control points are defined by the specialization.

◆ execute()

template<typename CONTROL_POLICY >
static int flecsi::control::control< CONTROL_POLICY >::execute ( int  argc,
char **  argv 
)
inlinestatic

Execute the control flow graph.

Parameters
argcThe number of command-line arguments.
argvThe command-line arguments.
Returns
An integer with 0 being success, and any other value being failure.

◆ exit_status() [1/2]

template<typename CONTROL_POLICY >
int flecsi::control::control< CONTROL_POLICY >::exit_status ( ) const
inline

Allow control points to set the exit status for execution.

◆ exit_status() [2/2]

template<typename CONTROL_POLICY >
int& flecsi::control::control< CONTROL_POLICY >::exit_status ( )
inline

Allow control points to set the exit status for execution.

◆ instance()

template<typename CONTROL_POLICY >
static control& flecsi::control::control< CONTROL_POLICY >::instance ( )
inlinestatic

Meyer's singleton.

◆ sorted_control_point_map()

template<typename CONTROL_POLICY >
std::vector<node_t> const& flecsi::control::control< CONTROL_POLICY >::sorted_control_point_map ( size_t  control_point)
inline

Return the sorted control map for the given control point.

Parameters
control_pointThe control point id or control point. Control points are defined by the specialization.

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