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

Applies Elem::operator() to vertex-property of Elem.target(). More...

Public Member Functions

 aggregator (Cont *pc, size_t max_msg_sz=16384)
 
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...
 
void flush (void)
 Flush the queues for all locations.
 
void flush (size_t i)
 Flush the queue for the provided location. More...
 
void local_flush (void)
 Flush the queue for this location. This is a local operation.
 
Cont * container (void)
 
void manual_destruct (void)
 Flush all queues that are not empty.
 

Public Types

typedef aggregator_base< Elem, Cont, aggregator< Elem, Cont > > base_type
 

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>
struct stapl::aggregator< Elem, Cont >

Applies Elem::operator() to vertex-property of Elem.target().

Template Parameters
ElemThe type of the user-requests being aggregated.
ContThe type of the container (graphs).

Member Function Documentation

◆ target_location()

size_t stapl::aggregator_base< Elem, Cont, aggregator< Elem, Cont > >::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]

void stapl::aggregator_base< Elem, Cont, aggregator< Elem, Cont > >::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]

void stapl::aggregator_base< Elem, Cont, aggregator< Elem, Cont > >::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.

◆ flush()

void stapl::aggregator_base< Elem, Cont, aggregator< Elem, Cont > >::flush ( size_t  i)
inherited

Flush the queue for the provided location.

Parameters
iThe location whose queue is to be flushed.

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