hpx/parallel/segmented_algorithms/sort.hpp#
Defined in header hpx/parallel/segmented_algorithms/sort.hpp.
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace hpx
-
namespace parallel
-
namespace segmented
Functions
-
template<typename SegIter, typename Comp = hpx::parallel::detail::less>
void hpx_invoke(hpx::sort_t, SegIter first, SegIter last, Comp &&comp = Comp())# Segmented overload of hpx::sort for partitioned_vector iterators.
A sequenced policy processes participating localities one at a time. A parallel policy overlaps independent locality operations. For ranges spanning localities, the comparator must be copyable and serializable by HPX.
This first implementation gathers all participating runs on one locality. Its final merge is serial, requires O(N) coordinator storage, and takes O(N log P) comparisons for P participating runs. Destination runs are committed incrementally; an exception during this phase can leave a partially reordered range.
-
template<typename ExPolicy, typename SegIter, typename Comp = hpx::parallel::detail::less>
hpx::parallel::util::detail::algorithm_result_t<ExPolicy> hpx_invoke(hpx::sort_t, ExPolicy &&policy, SegIter first, SegIter last, Comp &&comp = Comp())# Segmented overload of hpx::sort with an execution policy.
For ranges spanning localities, the comparator must be copyable and serializable by HPX.
The policy controls local partition sorting and whether independent locality operations overlap. This first implementation gathers all participating runs on one locality. Its final merge is serial, requires O(N) coordinator storage, and takes O(N log P) comparisons for P participating runs. Destination runs are committed incrementally; an exception during this phase can leave a partially reordered range.
-
template<typename SegIter, typename Comp = hpx::parallel::detail::less>
-
namespace parallel