On 8/8/20 1:19 PM, Jeff Squyres (jsquyres) via users wrote:
On Aug 7, 2020, at 12:52 PM, Oddo Da via users <users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>> wrote:

    The Java bindings support "recent" JDK, and if you face an issue,
    please report a bug (either here or on github)


Starting with Java 8, the language went into a much different direction - functional programming, lambdas, streams, concurrency. It is not at all the language we may remember from the early 2000s. At JDK 9 or 10+ I think it supports actor based concurrency. So, the "recent" part is rather vague - I was hoping for a particular JDK minimum :-)

As Ralph mentioned, the Java bindings were added quite a while ago.  I'm afraid I don't know which JDK is the minimum level, but they probably support fairly old versions (probably JDK 7? Maybe 6? I don't know offhand).

Specifically, there were a few Java MPI experiments in the 90's/early 2000's.  Those kinda fizzled out.  The Open MPI Java bindings was an attempt by some Open MPI community members to revamp/modernize the earlier Java MPI bindings, and specifically to bridge some of the performance gap that the earlier work saw (by using the Java bridge to the underlying C bindings, which didn't exist at the time of the first Java experiments).  It was largely successful within its defined goals.

I am not a Java expert, but I understand that the authors also modernized the interface a bit, too.

That being said, as you mentioned, JDK 9/10 have changed many, many things.  The Java MPI bindings in Open MPI have not been following the evolution of the JDK, so there is no usage of modern JDK abstractions/language features.

That being said, Open MPI is quite definitely an open source project.  If you have some thoughts about how to improve the existing Java bindings, that would be great!  The Open MPI Java bindings are *not* recognized by the MPI Forum, however -- they are a cool side project and I think at least a small number of apps used them.  But they never caught wide-spread usage or popularity.  That being said, if there's some interesting, publish-worthy stuff to pursue here, well, that's part of why the Open MPI project exists.  :-)

Some Ping pong tests using the Java interface, JDK 8
https://github.com/mboysan/ping-pong-mpi-tcp

Perhaps there might be interest in porting the other OSU or Intel MPI benchmarks to this?

There are also some parallel Java PGAS related projects that might possibly use at some point some of the OpenMPI components:
https://pcj.icm.edu.pl/
https://wiki.rice.edu/confluence/display/PARPROG/HJ+Library
http://mpj-express.org/

Reply via email to