hpx/collectives/reduce.hpp
hpx/collectives/reduce.hpp#
Defined in header hpx/collectives/reduce.hpp.
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace hpx
Top level HPX namespace.
-
namespace collectives
Top level HPX namespace.
Functions
-
template<typename T, typename F>
hpx::future<std::decay_t<T>> reduce_here(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())# Reduce a set of values from different call sites
This function receives a set of values from all call sites operating on the given base name.
- Parameters
basename – The base name identifying the all_reduce operation
local_result – A value to reduce on the central reduction point from this call site.
op – Reduction operation to apply to all values supplied from all participating sites
num_sites – The number of participating sites (default: all localities).
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.
generation – The generational counter identifying the sequence number of the all_reduce operation performed on the given base name. This is optional and needs to be supplied only if the all_reduce operation on the given base name has to be performed more than once. The generation number (if given) must be a positive number greater than zero.
- Returns
This function returns a future holding a vector with all values send by all participating sites. It will become ready once the all_reduce operation has been completed.
-
template<typename T, typename F>
hpx::future<decay_t<T>> reduce_here(communicator comm, T &&local_result, F &&op, this_site_arg this_site = this_site_arg(), generation_arg generation = generation_arg())# Reduce a set of values from different call sites
This function receives a set of values that are the result of applying a given operator on values supplied from all call sites operating on the given base name.
Reduce a set of values from different call sites
This function receives a set of values that are the result of applying a given operator on values supplied from all call sites operating on the given base name.
Note
The generation values from corresponding reduce_here and reduce_there have to match.
Note
The generation values from corresponding reduce_here and reduce_there have to match.
- Parameters
comm – A communicator object returned from create_communicator
local_result – A value to reduce on the root_site from this call site.
op – Reduction operation to apply to all values supplied from all participating sites
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.
generation – The generational counter identifying the sequence number of the all_reduce operation performed on the given base name. This is optional and needs to be supplied only if the all_reduce operation on the given base name has to be performed more than once. The generation number (if given) must be a positive number greater than zero.
comm – A communicator object returned from create_communicator
local_result – A value to reduce on the root_site from this call site.
op – Reduction operation to apply to all values supplied from all participating sites
generation – The generational counter identifying the sequence number of the all_reduce operation performed on the given base name. This is optional and needs to be supplied only if the all_reduce operation on the given base name has to be performed more than once. The generation number (if given) must be a positive number greater than zero.
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.
- Returns
This function returns a future holding a value calculated based on the values send by all participating sites. It will become ready once the all_reduce operation has been completed.
- Returns
This function returns a future holding a value calculated based on the values send by all participating sites. It will become ready once the all_reduce operation has been completed.
-
template<typename T, typename F>
hpx::future<void> reduce_there(char const *basename, T &&result, this_site_arg this_site = this_site_arg(), generation_arg generation = generation_arg(), root_site_arg root_site = root_site_arg())# Reduce a given value at the given call site
This function transmits the value given by result to a central reduce site (where the corresponding reduce_here is executed)
- Parameters
basename – The base name identifying the reduction operation
result – A future referring to the value to transmit to the central reduction point from this call site.
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.
generation – The generational counter identifying the sequence number of the all_reduce operation performed on the given base name. This is optional and needs to be supplied only if the all_reduce operation on the given base name has to be performed more than once. The generation number (if given) must be a positive number greater than zero.
root_site – The sequence number of the central reduction point (usually the locality id). This value is optional and defaults to 0.
- Returns
This function returns a future<void>. It will become ready once the reduction operation has been completed.
-
template<typename T>
hpx::future<void> reduce_there(communicator comm, T &&local_result, this_site_arg this_site = this_site_arg(), generation_arg generation = generation_arg())# Reduce a given value at the given call site
This function transmits the value given by result to a central reduce site (where the corresponding reduce_here is executed)
Reduce a given value at the given call site
This function transmits the value given by result to a central reduce site (where the corresponding reduce_here is executed)
Note
The generation values from corresponding reduce_here and reduce_there have to match.
Note
The generation values from corresponding reduce_here and reduce_there have to match.
- Parameters
comm – A communicator object returned from create_communicator
local_result – A value to reduce on the central reduction point from this call site.
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.
generation – The generational counter identifying the sequence number of the all_reduce operation performed on the given base name. This is optional and needs to be supplied only if the all_reduce operation on the given base name has to be performed more than once. The generation number (if given) must be a positive number greater than zero.
comm – A communicator object returned from create_communicator
local_result – A value to reduce on the central reduction point from this call site.
generation – The generational counter identifying the sequence number of the all_reduce operation performed on the given base name. This is optional and needs to be supplied only if the all_reduce operation on the given base name has to be performed more than once. The generation number (if given) must be a positive number greater than zero.
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.
- Returns
This function returns a future holding a value calculated based on the values send by all participating sites. It will become ready once the all_reduce operation has been completed.
- Returns
This function returns a future holding a value calculated based on the values send by all participating sites. It will become ready once the all_reduce operation has been completed.
-
template<typename T, typename F>
-
namespace collectives