MPI.jl icon indicating copy to clipboard operation
MPI.jl copied to clipboard

Support for non-blocking collective communication

Open sloede opened this issue 3 years ago • 4 comments

Are there plans to support non-blocking collectives in MPI.jl anytime soon. If not, is it due to a lack of (human) resources or are there technical issues that have prevented this in the past?

sloede avatar Oct 12 '20 05:10 sloede

There are no technical obstacles as far as I'm aware, I think it is more that no one has made a request for them. Are there any in particular you need? Alternatively if you would like to wrap them yourself, please feel free to open a PR.

simonbyrne avatar Oct 12 '20 15:10 simonbyrne

I was looking at MPI_Ireduce to improve the performance for calculating the maximum delta t for global time stepping, and I saw that no non-blocking collective operations are supported in MPI.jl. Therefore I was wondering if there is a hard reason why this cannot be supported (although I couldn't think of one).

When I get around to it, I'll certainly be happy to open a PR; until then I'll just leave this open in case others are wondering the same (but feel free to close).

sloede avatar Oct 12 '20 20:10 sloede

I've now simplified the collective buffer code. Hopefully this should make it easier to implement non-blocking versions.

simonbyrne avatar Nov 17 '20 05:11 simonbyrne

If one wants to implement this, the non-blocking collectives should be listed here: https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/node95.htm#Node95. API-level wrappers seem to already be available, e.g. https://github.com/JuliaParallel/MPI.jl/blob/1b9ce103b65090cc1c9a5a213262424f65dca003/src/api/generated_api.jl#L593-L595 Hence, it seems one would only need to add more "high-level" wrapper functions, similar to, e.g., https://github.com/JuliaParallel/MPI.jl/blob/1b9ce103b65090cc1c9a5a213262424f65dca003/src/pointtopoint.jl#L62-L70

(For context, here is a relevant video-tutorial on the topic by Torsten Hoeflers: https://www.youtube.com/watch?v=HPstYOJi5Pw)

carstenbauer avatar Nov 10 '22 09:11 carstenbauer