-
Notifications
You must be signed in to change notification settings - Fork 47
Open
Description
Execution policies should be introduced that allow to specify the behavior of DASH algorithms.
Usage should correspond to execution policies as proposed for the STL:
http://en.cppreference.com/w/cpp/experimental/transform_reduce
For example:
// The specialization of dash::transform for one-sided execution results in
// MPI_Accumulate + MPI_Win_flush:
// defaults to one-sided execution policy:
dash::transform(
in_a_first, in_a_last,
in_b_first,
out_first);
// specify one-sided execution explicitly:
dash::transform(
dash::execution::onesided,
in_a_first, in_a_last,
in_b_first,
out_first);
// For collective execution, dash::transform resolves to MPI_Allreduce which
// is more efficient but requires a coordinated schedule:
dash::transform(
dash::execution::collective,
in_a_first, in_a_last,
in_b_first,
out_first);