Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Execution Policies for Algorithms #104

Open
fuchsto opened this issue Nov 15, 2016 · 1 comment
Open

Execution Policies for Algorithms #104

fuchsto opened this issue Nov 15, 2016 · 1 comment

Comments

@fuchsto
Copy link
Member

fuchsto commented Nov 15, 2016

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);
@fuchsto
Copy link
Member Author

fuchsto commented Feb 13, 2017

Related to launch policies, see #272

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant