STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Classes | Modules | Functions

Entities to facilitate the execution of skeletons in STAPL. More...

+ Collaboration diagram for Skeleton Execution:

Classes

class  stapl::skeletons::skeletons_impl::execution_params< ResultType, isBlocking, OptionalParams >
 Stores the execution parameters to be used for running a a skeleton in STAPL. These parameters are currently: More...
 
class  stapl::skeletons::memento
 memento is following Memento design skeleton and is responsible for keeping track of not-yet-spawned skeletons. Skeletons can ask a spawner to store their current state. The spawner in turn asks its skeleton_manager to store the state. More...
 
class  stapl::skeletons::skeletons_impl::paragraph_skeleton_manager< Skeleton, ExecutionParams >
 This is a wrapper over the core skeleton_manager that allows the creating of tasks in STAPL task graphs. More...
 
class  stapl::skeletons::skeleton_manager
 skeleton_manager is the core entity of the skeleton framework. It uses an environment, a set of input views, and a skeleton to evaluate (spawn) a skeleton. An evaluated (spawned) skeleton can be represented differently in different environments. For example, a spawned skeleton in a taskgraph_env is a task graph. A spawned skeleton in a graphviz_env is a GraphViz representation of the dependence graph, etc. More...
 
class  stapl::skeletons::spawner< Env >
 The spawner is used in conjunction with the skeleton_manager to create nodes in the given environment. It is the main interface between skeletons and skeleton_manager and also the environment being used. Therefore, it offers an interface for recording the state of a skeleton's spawning process, and provides spawn_element interface that would do different activities depending on the spawn_mode that the spawner is currently set as. More...
 

Modules

 Skeleton Execution Internal
 

Functions

template<typename ExecutionParams , typename S , typename... Views>
ExecutionParams::result_type stapl::skeletons::skeletons_impl::execute (std::false_type, ExecutionParams const &ep, S &&skeleton, Views &&... views)
 
template<typename ExecutionParams , typename S , typename... Views>
ExecutionParams::result_type stapl::skeletons::skeletons_impl::execute (std::true_type, ExecutionParams const &ep, S &&skeleton, Views &&... views)
 
template<typename ExecutionParams , typename S , typename... Views>
ExecutionParams::result_type stapl::skeletons::execute (ExecutionParams const &execution_params, S &&skeleton, Views &&... views)
 Given a skeleton, and a set of views this method spawns the skeleton in a taskgraph_env. More...
 
template<typename S , typename... Views>
skeletons_impl::hand_execute_impl< typename std::decay< S >::type, typename std::decay< Views >::type... >::result_type stapl::skeletons::hand_execute (S &&skeleton, Views &&... views)
 Given a skeleton, and a set of views this method executes the skeleton in-place without an explicit task graph. More...
 
template<typename S , typename ExecutionParams >
skeletons_impl::paragraph_skeleton_manager< typename std::decay< S >::type, typename std::decay< ExecutionParams >::type > stapl::skeletons::make_paragraph_skeleton_manager (S &&skeleton, ExecutionParams &&ep)
 Creates a paragraph_skeleton_manager using the given parameters. The default values for the arguments are provided in paragraph_skeleton_manager_fwd.hpp. More...
 

Detailed Description

Entities to facilitate the execution of skeletons in STAPL.

While skeletons define the specification of algorithms, the executors define how these specifications can be used to generate runnable programs. The executors keep track of the spawning process. In addition, they can pause, record, and resume the spawning process.

Function Documentation

◆ execute() [1/3]

template<typename ExecutionParams , typename S , typename... Views>
ExecutionParams::result_type stapl::skeletons::skeletons_impl::execute ( std::false_type  ,
ExecutionParams const &  ep,
S &&  skeleton,
Views &&...  views 
)

Special case for blocking paragraphs

◆ execute() [2/3]

template<typename ExecutionParams , typename S , typename... Views>
ExecutionParams::result_type stapl::skeletons::skeletons_impl::execute ( std::true_type  ,
ExecutionParams const &  ep,
S &&  skeleton,
Views &&...  views 
)

Special case for non-blocking paragraphs

◆ execute() [3/3]

template<typename ExecutionParams , typename S , typename... Views>
ExecutionParams::result_type stapl::skeletons::execute ( ExecutionParams const &  execution_params,
S &&  skeleton,
Views &&...  views 
)

Given a skeleton, and a set of views this method spawns the skeleton in a taskgraph_env.

The execution_params define various configurations for execution including coarsening method and the scheduler to be used and also determine whether the execution should be non-blocking. In addition, the execution_params determine if the execution would return a value after finishing.

Parameters
execution_paramscustomize the execution process (
See also
execution_params.hpp)
Parameters
skeletonthe skeleton to be spawned
views...the set of views to be used for spawning
Returns
a reference to the result only if execution_params::result_type is not void.

◆ hand_execute()

template<typename S , typename... Views>
skeletons_impl::hand_execute_impl< typename std::decay<S>::type, typename std::decay<Views>::type...>::result_type stapl::skeletons::hand_execute ( S &&  skeleton,
Views &&...  views 
)

Given a skeleton, and a set of views this method executes the skeleton in-place without an explicit task graph.

Parameters
skeletonthe skeleton to be spawned
views...the set of views to be used for spawning

◆ make_paragraph_skeleton_manager()

template<typename S , typename ExecutionParams >
skeletons_impl::paragraph_skeleton_manager< typename std::decay< S >::type, typename std::decay< ExecutionParams >::type > stapl::skeletons::make_paragraph_skeleton_manager ( S &&  skeleton,
ExecutionParams &&  ep 
)

Creates a paragraph_skeleton_manager using the given parameters. The default values for the arguments are provided in paragraph_skeleton_manager_fwd.hpp.

Parameters
skeletonthe skeleton to be spawned.
execution_paramscustomize the execution process (
See also
execution_params.hpp)
Returns
a skeleton manager over the given skeleton