STAPL API Reference |
Modules Classes |
Primitives that control aggregation. More...
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... | |
Primitives that control aggregation.
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.
|
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.
agg | Requested number of aggregated requests per internal buffer. |
void stapl::set_rmi_buffer_size | ( | const std::size_t | size | ) |
Sets the default RMI buffer size. It will reset aggregation to maximum.