[Mpi-forum] MPI supported languages
Dan Holmes
danholmes at chi.scot
Sun Apr 25 09:10:19 CDT 2021
Hi Benson Muite,
Thanks for this good list of unofficial bindings and projects using MPI or MPI-like interfaces.
The short answer to your question is: yes, there is an effort underway to provide better support for other programming languages.
Some work was done for the MPI-4.0 release of MPI (due this year) to firm up some of the key semantic terms, which will aid us when attempting to express those semantics in new languages. That work is continuing and more results from that are targeted at the upcoming MPI-4.1 and future versions of MPI. Figuring out the dividing line between what is currently being expressed (semantics) and what is dictated by the current mechanism of expression (C or Fortran) is a first step towards new forms of expression.
Beyond that work, additional language expertise will be needed from some folks who are regular users of these other programming languages so that appropriate expressions of the essential MPI semantics are chosen — language mechanisms that “fit” with the normal/natural ways that a typical programmer would recognise. One possible strategy that has been discussed is to split the MPI Standard into a single MPI Core Standard and multiple MPI Bindings for <language> Standards. This might happen as early as MPI-5.0 (perhaps 5-10 years away) depending on how controversial it turns out to be and the rate of progress, which will depend heavily on the amount of interest and sustained contribution from a community of users.
Cheers,
Dan.
—
Dr Daniel Holmes PhD
Executive Director
Chief Technology Officer
CHI Ltd
danholmes at chi.scot
> On 25 Apr 2021, at 09:36, Benson Muite via mpi-forum <mpi-forum at lists.mpi-forum.org> wrote:
>
> MPI has official bindings for C and Fortran. There are unoffical bindings in
>
> C# - https://github.com/rogancarr/MpiDotNet
> D - https://github.com/DlangScience/OpenMPI)
> Go - https://pkg.go.dev/github.com/cpmech/gosl/mpi and https://github.com/marcusthierfelder/mpi
> Java - https://www.open-mpi.org/
> Julia - https://github.com/JuliaParallel/MPI.jl
> Lua - https://github.com/jzrake/lua-mpi and https://peter.colberg.org/lua-mpi
> Ocaml - https://github.com/xavierleroy/ocamlmpi
> Perl - https://metacpan.org/pod/Parallel::MPI
> Python - https://bitbucket.org/mpi4py/mpi4py
> R - https://github.com/RBigData/pbdMPI and https://cran.r-project.org/package=Rmpi
> Ruby - https://github.com/gfd-dennou-club/ruby-mpi
> Rust - https://lib.rs/crates/mpi
> Scala - https://github.com/mpokorny/scampi
>
>
> It is also used as a possible backend for among other PGAS languages XcalableMP - https://xcalablemp.org/
>
> Some people did not expect MPI to be used by many developers directly. Are there any thoughts on how better support for other programming languages and MPI as a backend might be improved in future?
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> https://lists.mpi-forum.org/mailman/listinfo/mpi-forum
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20210425/59c14ced/attachment.html>
More information about the mpi-forum
mailing list