Benson and Dan, thanks.

Martin Ruefenacht, Derek Schafer, and I plan to submit a proposal for a new 
language interface (not language binding) for C++17/20 when MPI-5 convenes.  
The aim is to generate more performance and productivity.

My group is also working on two separate themes with colleagues at PNNL and 
LLNL on exploratory C++ interfaces for MPI for specific learning/prototyping.  
I am sure we will publish some joint papers before MPI-5 starts with these 
colleagues.

We are likely to extend that thinking to Python also.

Martin and I are hoping to form a WG around these OO languages.  We also, want 
to do a type theory for the entire standard; there are many explicit and 
implicit types in MPI (not just containment by integers or such).  This has 
become clear as Martin and Jeff Squyres developed the Python technology for the 
MPI-4 document itself.

Note that (much) more can be done with Fortran-2018 too that goes beyond the 
imperative language binding that is pretty much identical to the LIS.

One hope is that we can separate out the language interfaces from the main 
standard, and let them have space to develop properly and be extended to more 
languages than C and Fortran.

Among other learning, some whole classes of helper objects may fall by the 
wayside in a modern C++ language interface, such as MPI_Info.

Tony



Anthony Skjellum, PhD

Professor of Computer Science and Chair of Excellence

Director, SimCenter

University of Tennessee at Chattanooga (UTC)

tony-skjel...@utc.edu  [or skjel...@gmail.com]

cell: 205-807-4968


________________________________
From: mpi-forum <mpi-forum-boun...@lists.mpi-forum.org> on behalf of Dan Holmes 
via mpi-forum <mpi-forum@lists.mpi-forum.org>
Sent: Sunday, April 25, 2021 10:10 AM
To: Benson Muite <benson_mu...@emailplus.org>
Cc: Dan Holmes <danhol...@chi.scot>; MPI Forum <mpi-forum@lists.mpi-forum.org>
Subject: Re: [Mpi-forum] MPI supported languages

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
danhol...@chi.scot<mailto:danhol...@chi.scot>



On 25 Apr 2021, at 09:36, Benson Muite via mpi-forum 
<mpi-forum@lists.mpi-forum.org<mailto:mpi-forum@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@lists.mpi-forum.org<mailto:mpi-forum@lists.mpi-forum.org>
https://lists.mpi-forum.org/mailman/listinfo/mpi-forum

_______________________________________________
mpi-forum mailing list
mpi-forum@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpi-forum

Reply via email to