Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] Backward Compatibility of MPI Java Binding
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2013-01-11 15:57:21


On Jan 10, 2013, at 10:33 AM, Yoshiki SATO <yoshiki_at_[hidden]> wrote:

>> Yes -- IIRC, the Java interface isn't really dependent upon anything specific in the back-end C implementation of Open MPI. So I'm guessing/assuming that if you can build it, it should work against the 1.6 OMPI C engine just fine.
>
> Sounds good :-) I'm going to try to build it anyway, and let you know if stucked.

Cool.

>> Is MPI-for-Java of interest to you? I ask because Ralph and I have been trying to figure out how to get the cycles to do more with the Java interface (e.g., make it more like a 1:1 set of bindings). Is this something you'd be willing to work on / contribute, perchance?
>
> Yes. This is because one of our roles is enabling Java applications to run on top of the K computer (Fujitsu), which prevents user processes from TCP/IP communications directly. It only allows communications via customized openmpi (scheduler) between inter node communications.

Gotcha.

> BTW, I don't fully understand what a 1:1 set of bindings mean. I believe that the interfaces defined in mpiJava was carefully designed to match the MPI spec, and then should be a 1:1 set of bindings. Otherwise, I'm willing to contribute something to make it better ;-)

I think they're *somewhat* close; I don't think that they're exactly a one-to-one mapping to the C bindings. I know that they added the "offset" argument for choice buffers, and I can see what that would be necessary. So that should probably stay.

But extras like MPI.OBJECT should probably disappear, and be replaced with proper support for Java-isms (e.g., N-dimensional arrays -- see posts from Siegmar on the users list about how N-dimensional arrays don't work because OMPI is assuming that they'll be contiguous in memory, but Java allocates, for example, a 2D array as a series of 1D arrays). And any other interfaces that aren't nearly identical to what the MPI C++ bindings are (were) should probably also go, unless there are strong reasons to *need* them.

I've setup a Bitbucket for this Java work, if you would like to contribute. It's a branch from the Open MPI SVN trunk; I can keep it up to date. If you send me your Bitbucket ID, I can give you write permissions.

    https://bitbucket.org/jsquyres/ompi-java-revamped

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/