STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types | Public Attributes | Protected Attributes
stapl::aggregator_apply_impl< Elem, Cont, WF, Derived > Struct Template Reference

Aggregates requests to apply a functor (WF) on the element (Elem). More...

Public Member Functions

 aggregator_apply_impl (Cont *pc, size_t max_msg_sz=16384)
 
void flush (void)
 
void flush (size_t i)
 
void local_flush (void)
 
size_t target_location (Elem const &x) const
 Returns the ID of the location where the specified element is stored. More...
 
void add (Elem const &x)
 Adds an element to the aggregator. More...
 
void add (Elem const &x, size_t loc)
 Adds an element to the aggregator, when the target location is given. More...
 
Cont * container (void)
 
void manual_destruct (void)
 Flush all queues that are not empty.
 

Public Types

typedef aggregator_base< Elem, Cont, Derived > base_type
 

Public Attributes

WF m_wf
 

Protected Attributes

std::vector< std::vector< Elem > > m_send_queue
 Container for storing requests to each location.
 
std::vector< size_t > m_loc_ids
 Container storing a random shuffling for all location-ids. Shuffling the location-ids provides better performance by easing network traffic.
 
Cont * m_pc
 Pointer to the container where requests will be executed.
 
size_t m_max_msg_aggregate_sz
 Maximum number of requests that will be aggregated.
 
size_t m_loc_id
 The ID of this location.
 

Detailed Description

template<typename Elem, typename Cont, typename WF, typename Derived>
struct stapl::aggregator_apply_impl< Elem, Cont, WF, Derived >

Aggregates requests to apply a functor (WF) on the element (Elem).

WF is provided with a pointer to the graph and an element.

Template Parameters
ElemThe type of the user-requests being aggregated.
ContThe type of the container (graphs).
WFThe type of the functor to execute on (graphs).
DerivedThe most derived type for CRTP.

Member Function Documentation

◆ target_location()

template<typename Elem, typename Cont, typename Derived>
size_t stapl::aggregator_base< Elem, Cont, Derived >::target_location ( Elem const &  x) const
inherited

Returns the ID of the location where the specified element is stored.

Derived classes may chose to overwrite this method to provide a suitable method to find what the element is. By default, the element GID is provided by the .target() method.

◆ add() [1/2]

template<typename Elem, typename Cont, typename Derived>
void stapl::aggregator_base< Elem, Cont, Derived >::add ( Elem const &  x)
inherited

Adds an element to the aggregator.

This will trigger a flush if the queue for the target location has exceeded the maximum message size.

◆ add() [2/2]

template<typename Elem, typename Cont, typename Derived>
void stapl::aggregator_base< Elem, Cont, Derived >::add ( Elem const &  x,
size_t  loc 
)
inherited

Adds an element to the aggregator, when the target location is given.

This will trigger a flush if the queue for the target location has exceeded the maximum message size.

Parameters
xThe element to send.
locThe location to send the element to.

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