|
template<typename T , typename Tag = stapl::use_default, typename Span = stapl::use_default> |
skeletons::result_of::alltoall< T, Tag, Span > | stapl::skeletons::alltoall (void) |
| This alltoall skeleton is a recursive-doubling alltoall and works only for power-of-two sizes. More...
|
|
template<bool is_pos_aware = false, typename Flows = stapl::use_default, typename Span = stapl::use_default, typename Op , typename Filter = skeletons::no_filter> |
result_of::butterfly< is_pos_aware, Flows, Span, Op, Filter > | stapl::skeletons::butterfly (Op &&op, Filter &&filter=Filter()) |
| A butterfly skeleton is used in various applications including but not limited to a type of allreduce, FFT DIT. More...
|
|
template<bool is_pos_aware = false, typename Flows = stapl::use_default, typename Span = stapl::use_default, typename Op , typename Filter = skeletons::no_filter> |
result_of::reverse_butterfly< is_pos_aware, Flows, Span, Op, Filter > | stapl::skeletons::reverse_butterfly (Op &&op, Filter &&filter=Filter()) |
| A reverse butterfly skeleton is used in various applications including but not limited to a type of allreduce, FFT DIT. More...
|
|
template<typename Flows = stapl::use_default, typename Op > |
result_of::pointer_jumping< Flows, Op > | stapl::skeletons::pointer_jumping (Op &&op) |
| A pointer jumping skeleton consists of levels of combining values of a given input with an element with the index . More...
|
|
template<typename T , typename Tag = stapl::use_default, typename Span = stapl::use_default>
skeletons::result_of::alltoall<T, Tag, Span> stapl::skeletons::alltoall |
( |
void |
| ) |
|
This alltoall skeleton is a recursive-doubling alltoall and works only for power-of-two sizes.
In a recursive doubling alltoall each node sends its lower and upper half chunks to its butterflied pair in the parametric dependency. Each chunk is of size num_elem_per_node/2
. The communication is therefore:
- Note
- The current default implementation can only be used for power-of-two sizes, since it uses a butterfly skeleton.
- Template Parameters
-
T | the type of elements to be communicated |
Span | the span to be used for butterfly inside |
Tag | determines which type of alltoall to use |
template<bool is_pos_aware = false, typename Flows = stapl::use_default, typename Span = stapl::use_default, typename Op , typename Filter = skeletons::no_filter>
result_of::butterfly<is_pos_aware, Flows, Span, Op, Filter> stapl::skeletons::butterfly |
( |
Op && |
op, |
|
|
Filter && |
filter = Filter() |
|
) |
| |
A butterfly skeleton is used in various applications including but not limited to a type of allreduce, FFT DIT.
- Template Parameters
-
is_pos_aware | in some algorithms that use butterfly skeleton knowing the position of the element in the overall butterfly dependence graph is necessary, e.g., in FFT DIT. If you set this template parameter to true, this information will be sent to your workfunction by invoking its set_position |
Flows | the flow to be used between the levels of the butterfly |
Span | the iteration space for elements on each level of the butterfly skeleton |
- Parameters
-
op | the workfunction to be used in each butterfly parametric dependency. |
- Returns
- a butterfly skeleton
- See also
- butterfly_pd
-
log_lazysize
template<bool is_pos_aware = false, typename Flows = stapl::use_default, typename Span = stapl::use_default, typename Op , typename Filter = skeletons::no_filter>
result_of::reverse_butterfly<is_pos_aware, Flows, Span, Op, Filter> stapl::skeletons::reverse_butterfly |
( |
Op && |
op, |
|
|
Filter && |
filter = Filter() |
|
) |
| |
A reverse butterfly skeleton is used in various applications including but not limited to a type of allreduce, FFT DIT.
- Template Parameters
-
is_pos_aware | in some algorithms that use reverse butterfly skeleton knowing the position of the element in the overall reverse butterfly dependence graph is necessary, e.g., in FFT DIT. If you set this template parameter to true, this information will be sent to your workfunction by invoking its set_position |
Flows | the flow to be used between the levels of the reverse butterfly |
Span | the iteration space for elements on each level of the reverse butterfly skeleton |
- Parameters
-
op | the workfunction to be used in each reverse butterfly parametric dependency. |
- Returns
- a reverse butterfly skeleton
- See also
- butterfly_pd
-
log_lazysize