-
Notifications
You must be signed in to change notification settings - Fork 44
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
Improvements to dash::accumulate #216
Comments
The current realization of First things first:
Consequently, Semantics of https://github.com/dash-project/dash/blob/development/dash/include/dash/algorithm/Transform.h#L252 The best I could do for this clash of specs was to document it:
Standardese aside, the current implementation is broken.
|
Thanks for the enlightenment! Then maybe |
Emm. You moved it there? Or @fmoessbauer did and you reviewed it: I implemented the algorithm stuff and placed |
I know. Let me rephrase: Who will fix it? ;) |
Oh :D |
... aaaand also: as it is defined in DASH, |
Resolved in PR #237 |
Reopening this issue after accidentally looking at the code for |
@devreal https://www.mpich.org/static/docs/v3.1/www3/MPI_Accumulate.html It performs an element-wise atomic update operation, similar to a put, but reduces origin and target data into the target buffer. This is why there is a parameter So that's why The synopsis described in these lecture slides might be more helpful than the vague definition in the MPI standard docs: http://wgropp.cs.illinois.edu/courses/cs598-s16/lectures/lecture34.pdf |
Right, got the docs wrong. Sorry for that. |
I have to reopen this once again because the implementation of dash::accumulate is still broken, which was the actual reason for this issue. Please see my first paragraph in the initial description:
I guess we got completely side-tracked by the discussion of the semantics of EDIT: as a side-node, there is another problem: the definition of EDIT2: why not have |
Will be fixed along with introduction of execution- and launch policies, see PR #300 |
The current implementation of
dash::accumulate
has a flaw: only unit 0 (randomly chosen?) actually receives a valid result. This is neither documented nor does the user have a chance to influence this. I seem to remember that we had a similar discussion at our last F2F. IMO, either the user can choose which unit receives the result or it should be broadcast to all units. At the very least, it has to be documented...Also,
dash::accumulate
should usedart_accumulate
whenever possible.Discovered while working on #212.
The text was updated successfully, but these errors were encountered: