STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Classes
Coarse Transformation

The coarsening operator transform skeletons which generate very fine-grained dataflow graphs to the skeletons which can handle data with larger granularity. More...

Classes

struct  stapl::skeletons::transformations::transform< S, tags::butterfly< B >, tags::coarse< CoarseTag, ExecutionTag > >
 A coarse-grain butterfly can be created by first computing a butterfly skeleton with a coarsened operator on the coarsened input followed by a map of fine-grained butterfly skeletons on the produced results. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::reverse_butterfly< B >, tags::coarse< CoarseTag, ExecutionTag > >
 A coarse-grain reverse-butterfly can be created by first computing a map of fine-grained butterfly skeletons followed by a coarse-grain reverse-butterfly with a coarsened operation on the produced results. More...
 
struct  stapl::skeletons::transformations::transform< stapl::skeletons::skeletons_impl::compose< stapl::tuple< S... >, Flows >, SkeletonTag, tags::coarse< CoarseTag, ExecutionTag > >
 A coarsening transformation on a composed skeleton applies coarsening on each individual skeleton and composes them again using the flow specification of the original fine-grain composition. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::reduce< Tag >, tags::coarse< CoarseTag, ExecutionTag > >
 A simple coarse-grain reduce can be created by first computing local reduction on each location and applying reduction on the outcome of those local reductions. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::reduce_to_locs, tags::coarse< CoarseTag, ExecutionTag > >
 A simple coarse-grain reduce to each location would use coarse_reduce and in addition propagates the value to each location. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::scan< Tag, Alg >, tags::coarse< CoarseTag, ExecutionTag > >
 A coarsened version of scan algorithm. The type of the scan skeleton to be used is determined by Tag and Type. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::scan< Tag, tags::exclusive >, tags::coarse< tags::naive, ExecutionTag > >
 This version of coarse scan skeleton is only kept for comparison purposes. This is the slowest version of a coarsened scan skeleton, since it has 4N memory accesses (2N accesses in computing the divide phase scan and 2N accesses in t he update phase). More...
 
struct  stapl::skeletons::transformations::transform< S, tags::scan_reduce< Tag, tags::exclusive >, tags::coarse< CoarseTag, ExecutionTag > >
 Coarsened version of exclusive scan_reduce skeleton. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::scan_reduce< Tag, tags::inclusive >, tags::coarse< CoarseTag, ExecutionTag > >
 Coarsened version of inclusive scan_reduce skeleton. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::serial< arity >, tags::coarse< CoarseTag, ExecutionTag > >
 A simple coarse-grain zip can be created by creating a zip of zips. This is the perfect example of simple division of work. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::zip< Tag, arity >, tags::coarse< CoarseTag, ExecutionTag > >
 A simple coarse-grain zip can be created by creating a zip of zips. This is the perfect example of simple division of work. More...
 
struct  stapl::skeletons::transformations::transform< S, tags::zip_reduce< arity >, tags::coarse< CoarseTag, ExecutionTag > >
 A coarse-grain zip_reduce can be created by sequencing a coarse-grain zip of zip_reduces with a reduce. More...
 
struct  stapl::skeletons::optimizers::optimizer< tags::butterfly< B >, tags::sequential_execution >
 A butterfly optimizer is used whenever the inputs are local. The knowledge of the inputs being local allows the usage of std::accumulate for a faster execution. More...
 
struct  stapl::skeletons::optimizers::optimizer< tags::reduce< Align >, tags::sequential_execution >
 A reduce optimizer is used whenever the inputs are local to a nested execution which improves the performance. More...
 
struct  stapl::skeletons::optimizers::optimizer< tags::scan< Algorithm, tags::inclusive >, tags::sequential_execution >
 A scan optimizer is used for the scan algorithm whenever the inputs are local to a location. This optimizer calls std::partial_sum to compute the results. You should notice that the allocation of space for the result value takes significant time for larger inputs and should be used with care. More...
 
struct  stapl::skeletons::optimizers::optimizer< tags::zip< Tag, arity >, tags::sequential_execution >
 A zip optimizer is used in the cases that all views are local and their traversal would be fast which improves the performance. You have to notice that the inner vector creation takes some time and you have to consider it before using this optimizer. More...
 
struct  stapl::skeletons::optimizers::optimizer< tags::zip_reduce< arity >, tags::sequential_unroll< factor > >
 A zip_reduce optimizer is used in the cases that both views are local and their traversal would be fast which improves the performance. Tagged with tags::sequential_unroll allows directs the optimizer to unroll the sequential loop with the specified factor. More...
 
struct  stapl::skeletons::optimizers::optimizer< tags::zip_reduce< arity >, tags::sequential_execution >
 A zip_reduce optimizer is used in the cases that both views are local and their traversal would be fast which improves the performance. More...
 

Detailed Description

The coarsening operator transform skeletons which generate very fine-grained dataflow graphs to the skeletons which can handle data with larger granularity.

Operator