Flows are used to customize skeleton compositional operators by modifying input and output dependencies between their underlying skeletons.
More...
|
template<std::size_t N, typename Flow > |
flows::result_of::cloned_flow< Flow, N >::type | stapl::skeletons::flows::cloned_flow (Flow &&flow) |
| Clones a given flow for the number of times specified by N . A cloned flow created by this method will wrap the given flow by numbered_flow with increasing indices starting from 0. More...
|
|
template<typename... Flows> |
flows::result_of::concat< Flows... > | stapl::skeletons::flows::concat (Flows const &... f) |
| Combines two flow tuples. More...
|
|
template<typename F , typename Skeleton > |
flows::result_of::in_flows< Skeleton, F > | stapl::skeletons::flows::in_flows (Skeleton skeleton, std::size_t lid_offset) |
| Returns a flow tuple created from the input flows of all the skeletons received in skeletons . More...
|
|
template<typename F , typename Skeleton > |
flows::result_of::out_flows< Skeleton, F > | stapl::skeletons::flows::out_flows (Skeleton skeleton, std::size_t lid_offset) |
| Returns a flow tuple created from the output flows of all the skeletons received in skeletons . More...
|
|
Flows are used to customize skeleton compositional operators by modifying input and output dependencies between their underlying skeletons.
Flows are computation independent definitions of input and output dependencies in skeleton compositions. Similar to the flow-based programming, flows describe how the ports of each skeleton is connected to other skeletons.
Each compositional operator has a default flows construct defined (e.g., piped for repeat and compose, forked for elem). However, customized flows can be used instead to define new skeleton compositions such as last_input_to_all for the sink skeleton.
◆ cloned_flow()
template<std::size_t N, typename Flow >
flows::result_of::cloned_flow<Flow, N>::type stapl::skeletons::flows::cloned_flow |
( |
Flow && |
flow | ) |
|
Clones a given flow for the number of times specified by N
. A cloned flow created by this method will wrap the given flow by numbered_flow
with increasing indices starting from 0.
- Template Parameters
-
N | the number of times the flow should be cloned |
- Parameters
-
flow | a single flow to be cloned |
◆ concat()
template<typename... Flows>
flows::result_of::concat<Flows...> stapl::skeletons::flows::concat |
( |
Flows const &... |
f | ) |
|
Combines two flow tuples.
- Parameters
-
f | flow tuples to be concatenated |
- Returns
- a tuple that contains the flows in all the flow tuples
◆ in_flows()
template<typename F , typename Skeleton >
flows::result_of::in_flows<Skeleton, F> stapl::skeletons::flows::in_flows |
( |
Skeleton |
skeleton, |
|
|
std::size_t |
lid_offset |
|
) |
| |
Returns a flow tuple created from the input flows of all the skeletons received in skeletons
.
- Parameters
-
skeletons | a list of skeletons for which the in-flows are obtained |
- Template Parameters
-
F | which flow modifier to apply on each in-flow |
- Returns
- a flow tuple containing all the input flows of the given skeleton set
◆ out_flows()
template<typename F , typename Skeleton >
flows::result_of::out_flows<Skeleton, F> stapl::skeletons::flows::out_flows |
( |
Skeleton |
skeleton, |
|
|
std::size_t |
lid_offset |
|
) |
| |
Returns a flow tuple created from the output flows of all the skeletons received in skeletons
.
- Parameters
-
skeletons | a list of skeletons for which the out_flows are obtained |
- Template Parameters
-
F | which flow modifier to apply on each out-flow |
- Returns
- a flow tuple containing all the input flows of the given skeleton set