hpx/collectives/exclusive_scan.hpp¶
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace
hpx
-
namespace
collectives
Functions
-
template<typename
T
, typenameF
>
hpx::future<std::decay_t<T>>exclusive_scan
(char const *basename, T &&result, F &&op, num_sites_arg num_sites = num_sites_arg(), this_site_arg this_site = this_site_arg(), generation_arg generation = generation_arg(), root_site_arg root_site = root_site_arg())¶ Exclusive scan a set of values from different call sites
This function performs an exclusive scan operation on a set of values received from all call sites operating on the given base name.
- Note
The result returned on the root_site is always the same as the result returned on thus_site == 1 and is the same as the value provided by the thje root_site.
- Return
This function returns a future holding a vector with all values send by all participating sites. It will become ready once the exclusive_scan operation has been completed.
- Parameters
basename
: The base name identifying the exclusive_scan operationlocal_result
: The value to transmit to all participating sites from this call site.op
: Reduction operation to apply to all values supplied from all participating sitesnum_sites
: The number of participating sites (default: all localities).generation
: The generational counter identifying the sequence number of the exclusive_scan operation performed on the given base name. This is optional and needs to be supplied only if the exclusive_scan operation on the given base name has to be performed more than once.this_site
: The sequence number of this invocation (usually the locality id). This value is optional and defaults to whatever hpx::get_locality_id() returns. \params root_site The site that is responsible for creating the exclusive_scan support object. This value is optional and defaults to ‘0’ (zero).
-
template<typename
T
, typenameF
>
hpx::future<std::decay_t<T>>exclusive_scan
(communicator comm, T &&result, F &&op, this_site_arg this_site = this_site_arg())¶ Exclusive scan a set of values from different call sites
This function performs an exclusive scan operation on a set of values received from all call sites operating on the given base name.
- Note
The result returned on the root_site is always the same as the result returned on thus_site == 1 and is the same as the value provided by the thje root_site.
- Return
This function returns a future holding a vector with all values send by all participating sites. It will become ready once the exclusive_scan operation has been completed.
- Parameters
comm
: A communicator object returned from create_communicatorlocal_result
: The value to transmit to all participating sites from this call site.op
: Reduction operation to apply to all values supplied from all participating sitesthis_site
: The sequence number of this invocation (usually the locality id). This value is optional and defaults to whatever hpx::get_locality_id() returns.
-
template<typename
-
namespace