collectivesΒΆ
The collectives module exposes a set of distributed collective operations. Those can be used to exchange data between participating sites in a coordinated way. At this point the module exposes the following collective primitives:
hpx::collectives::all_gather
: receives a set of values from all participating sites.hpx::collectives::all_reduce
: performs a reduction on data from each participating site to each participating site.hpx::collectives::all_to_all
: each participating site provides its element of the data to collect while all participating sites receive the data from every other site.hpx::collectives::broadcast_to
andhpx::collectives::broadcast_from
: performs a broadcast operation from a root site to all participating sites.- cpp:func:hpx::collectives::exclusive_scan
performs an exclusive scan operation
on a set of values received from all call sites operating on the given base name.
hpx::collectives::gather_here
andhpx::collectives::gather_there
: gathers values from all participating sites.- cpp:func:hpx::collectives::inclusive_scan
performs an inclusive scan operation
on a set of values received from all call sites operating on the given base name.
hpx::collectives::reduce_here
andhpx::collectives::reduce_there
: performs a reduction on data from each participating site to a root site.hpx::collectives::scatter_to
andhpx::collectives::scatter_from
: receives an element of a set of values operating on the given base name.hpx::lcos::broadcast
: performs a given action on all given global identifiers.hpx::lcos::barrier
: distributed barrier.hpx::lcos::fold
: performs a fold with a given action on all given global identifiers.hpx::lcos::latch
: distributed latch.hpx::lcos::reduce
: performs a reduction on data from each given global identifiers.hpx::lcos::spmd_block
: performs the same operation on a local image while providing handles to the other images.
See the API reference of the module for more details.