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

Primitives that control aggregation. More...

+ Collaboration diagram for Request aggregation control:

Functions

void stapl::rmi_flush (void)
 Flush all remaining aggregated RMI requests on the calling location. More...
 
unsigned int stapl::set_aggregation (const unsigned int agg) noexcept
 Override the current aggregation settings. More...
 
unsigned int stapl::get_aggregation (void) noexcept
 Obtain the current aggregation setting.
 
void stapl::set_rmi_buffer_size (const std::size_t)
 Sets the default RMI buffer size. It will reset aggregation to maximum. More...
 

Detailed Description

Primitives that control aggregation.

Function Documentation

◆ rmi_flush()

void stapl::rmi_flush ( void  )

Flush all remaining aggregated RMI requests on the calling location.

This is useful upon completion of a bulk communication phase of asynchronous requests to ensure the final few requests, which will be fewer than the current aggregation setting, to each location are in transit.

◆ set_aggregation()

unsigned int stapl::set_aggregation ( const unsigned int  agg)
noexcept

Override the current aggregation settings.

All asynchronous requests can be internally buffered and issued in groups to reduce network congestion caused by many small requests. Requests are aggregated per destination location, meaning a setting of 5 tries to issue requests in groups of 5 to a specific destination location.

By default, aggregation is the maximum possible (as determined by internal buffers). If possible, user-defined aggregation will be satisfied, as constrained by the size of internal buffers. For example, it may not be possible to aggregate several large requests given small internal buffers. Consult your specific implementation for ways of increasing internal buffers.

Parameters
aggRequested number of aggregated requests per internal buffer.
Returns
Aggregation setting obtained, which may be less than the requested if the internal buffers are not large enough.

◆ set_rmi_buffer_size()

void stapl::set_rmi_buffer_size ( const std::size_t  size)

Sets the default RMI buffer size. It will reset aggregation to maximum.

Warning
This is a collective function. The user has to make sure that there are no pending requests. Calling this function in a scope different than that of the application entry point is undefined behavior.