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

higher-level interface

Open simonbyrne opened this issue 5 years ago • 3 comments

It might be worth thinking about what a higher-level interface would look like. Here is some interesting discussion of possible C++ interfaces: https://github.com/mpi-forum/mpi-issues/issues/288

simonbyrne avatar Jun 04 '20 21:06 simonbyrne

It might be worth thinking about what a higher-level interface would look like. Here is some interesting discussion of possible C++ interfaces: https://github.com/mpi-forum/mpi-issues/issues/288

I like this idea. It would be great if there was an AbstractComm interface that could be satisfied with MPI.jl or something else such as a simple SelfComm.

lcw avatar Jun 04 '20 22:06 lcw

Note that there is already a higher-level interface, modelled after Python's high-level MPI interface. For example, it's quite easy to send arbitrary objects to arbitrary processes.

eschnett avatar Jun 05 '20 01:06 eschnett

That's true: it would be good to extend beyond what is currently available, and document them better. They do have a noticeable performance overhead though, due to serialization and lack of type inference.

I would be interested in tighter integration with the Julia parallel machinery. Some are simple, i.e we could define Base.wait(r::Request) = MPI.Wait!(r), but there is room for more interesting things. For example, in CliMA, @lcw and @vchuravy have done some interesting stuff combining non-blocking with Julia Tasks that might be made into something more general.

simonbyrne avatar Jun 05 '20 04:06 simonbyrne