With respect to Java support: frankly, Ralph and I have been somewhat surprised by the level of interest for Java+MPI! We wanted Java for some other reasons, but didn't really expect *too* much interest from the community.
Unfortunately, the Java package we imported into Open MPI is both a bit dated and is known to be buggy in a few cases. I'd really like to replace it with: - interfaces that are closer to a 1:1 mapping to the MPI C bindings - a full set of MPI interfaces Is this something that you'd be able to help with, perchance? Neither Ralph nor I are Java experts, and we're a bit pressed for resources -- anyone who can help here would be greatly appreciated. See http://www.open-mpi.org/community/lists/devel/2013/01/11915.php. On Jan 3, 2013, at 5:12 PM, Chuck Yahoo <chuckmos...@yahoo.com> wrote: > It's nice to see that this mail list has a lot of activity ! > > Thanks for the tips, I haven't used modules in quite a few years, having been > spoiled by Java ;-) > > Takes me back to the good old days, spending 10x more time configuring than > coding ! > > Chuck > > On Jan 3, 2013, at 1:05 PM, Ralph Castain <r...@open-mpi.org> wrote: > >> FWIW: I test it regularly on Mountain Lion, without problem. We know that >> some of the bindings aren't quite right, particularly on some of the >> collectives, but send/recv is fine >> >> >> On Jan 3, 2013, at 10:09 AM, "Beatty, Daniel D CIV NAVAIR, 474300D" >> <daniel.bea...@navy.mil> wrote: >> >>> Greetings Chuck, >>> I tend to agree with Doug. It hope to be able to test soon OpenMPI under >>> Lion/Mountain Lion. If someone has already done so, especially with Java, >>> that could be quite handy. >>> >>> V/R, >>> >>> Daniel Beatty, Ph.D. >>> Computer Scientist, Detonation Sciences Branch >>> Code 474300D >>> 1 Administration Circle M/S 1109 >>> China Lake, CA 93555 >>> daniel.bea...@navy.mil >>> (LandLine) (760)939-7097 >>> (iPhone) (806)438-6620 >>> >>> >>> >>> >>> On 1/3/13 9:49 AM, "Ralph Castain" <r...@open-mpi.org> wrote: >>> >>> Hi Doug >>> >>> What modules software do you use on the Mac? Would be nice to know :-) >>> >>> >>> On Jan 3, 2013, at 8:34 AM, Doug Reeder <d...@centurylink.net> wrote: >>> >>> Chuck, >>> >>> In step 4 you might want to consider the following >>> >>> --prefix=/usr/local/openmpi-1.7rc5 >>> >>> and use the modules software to select which version of openmpi to use. I >>> have to have multiple versions of openmpi available on my macs and this >>> approach has worked well for me. >>> >>> Doug Reeder >>> On Jan 3, 2013, at 9:22 AM, Chuck Mosher wrote: >>> >>> Hi, >>> >>> I've been trying to get a working version of the MPI java bindings on Mac >>> OSX (10.6.8 with Java 1.6.0_37). >>> >>> I ran into a number of issues along the way that I thought I would record >>> here for others who might be foolish enough to try the same ;-) >>> >>> The issues I had to spend time with were: >>> >>> 1. Installing a C compiler that can run from the command line >>> 2. Finding and installing an appropriate Java JDK for my OS version >>> 3. Building and installing OpenMPI for the first time on a Mac >>> 4. Conflicts with the existing OpenMPI version 1.2.8 that was installed >>> already on my Mac >>> 5. Figuring out syntax for using the mpirun command line to run java >>> 6. Odd behavior when trying to use "localhost" or the output from >>> `hostname` on the command line or in a hostfile >>> >>> Resolution for each of these in order: >>> >>> 1. Installing a C compiler for the command line >>> Found a good resource here: >>> http://www.macobserver.com/tmo/article/install_the_command_line_c_compilers_in_os_x_lion >>> >>> <http://www.macobserver.com/tmo/article/install_the_command_line_c_compilers_in_os_x_lion> >>> >>> The solution is to install XCode, then enable command line compilers from >>> the XCode console. >>> >>> 2. Finding and installing an appropriate Java JDK for my OS version >>> Used this resource to eventually figure out what to do: >>> http://www.wikihow.com/Install-the-JDK-(Java-Development-Kit)-on-Mac-OS-X >>> <http://www.wikihow.com/Install-the-JDK-(Java-Development-Kit)-on-Mac-OS-X> >>> It didn't exactly match my setup, but had enough clues. >>> The solution is to first find your java version (java -version, 1.6.0_37 in >>> my case) and then match that version number to the Apple Java update >>> version (11 in my case). >>> The key document is: >>> http://developer.apple.com/library/mac/#technotes/tn2002/tn2110.html >>> Which is a table relating java version numbers to the appropriate "Java for >>> Mac OS X xx.x Update xx". >>> Once you know the update number, you can download the JDK installer from >>> https://developer.apple.com/downloads/index.action >>> where you of course have to have an Apple developer ID to access. >>> Enter "java" in the search bar on the left and find the matching java >>> update, and you're good to go. >>> >>> 3. Building and installing OpenMPI for the first time on a Mac >>> After the usual false starts with a new installation on a new OS, I managed >>> to get a working build of openmpi-1.7rc5 with Java bindings. >>> I could only find the java bindings in the 1.7 pre-release. >>> I used the defaults as much as possible. >>> >>> After downloading from: >>> http://www.open-mpi.org/software/ompi/v1.7/ >>> and unarchiving to Downloads, open a Terminal window. >>> >>> cd Downloads/openmpi-1.7rc5 >>> ./configure --enable-java --prefix=/usr/local >>> make all >>> sudo make install >>> >>> Verify that you can run the commands and examples: >>> >>> chuck-> /usr/local/bin/mpirun -version >>> mpirun (Open MPI) 1.7rc5 >>> >>> chuck-> cd examples >>> chuck-> make >>> chuck-> /usr/local/bin/mpirun -np 2 hello_c >>> Hello, world, I am 0 of 2, (Open MPI v1.7rc5, package: Open MPI >>> chuck@chucks-iMac.local Distribution, ident: 1.7rc5, Oct 30, 2012, 111) >>> Hello, world, I am 1 of 2, (Open MPI v1.7rc5, package: Open MPI >>> chuck@chucks-iMac.local Distribution, ident: 1.7rc5, Oct 30, 2012, 111) >>> >>> 4. Conflicts with the existing OpenMPI version 1.2.8 that was installed >>> already on my Mac >>> OpenMPI Version 1.2.8 was already installed for my OS in /usr/bin >>> So, if you accidentally type: >>> >>> chuck-> mpirun -np 2 hello_c >>> -------------------------------------------------------------------------- >>> A requested component was not found, or was unable to be opened >>> ... >>> >>> you picked up the wrong "mpirun" and you will get a bunch of error output >>> complaining about sockets or mis-matched shared library versions. >>> >>> I dealt with this moving the existing OpenMPI related commands to a >>> subdirectory, and then created symbolic links from /usr/local/bin to >>> /usr/bin for the commands I needed. >>> >>> 5. Figuring out syntax for using the mpirun command line to run java >>> First be sure you can run Java >>> >>> chuck-> /usr/bin/java -version >>> java version "1.6.0_37" >>> Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-10M3909) >>> Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode) >>> >>> Then be sure you can run your java class from the command line as well. To >>> figure this out I created a couple of simple java files in a temp directory: >>> >>> chuck-> cd ~/tmp >>> chuck-> mkdir classes >>> chuck -> cat HelloWorld.java >>> >>> public class HelloWorld { >>> public static void main(String[] args) { >>> System.out.println("Hello World, from Java !"); >>> } >>> } >>> >>> chuck-> javac -d classes HelloWorld.java >>> chuck-> java -cp ./classes HelloWorld >>> >>> Hello World, from Java ! >>> >>> No sense going further until you can get the code above to run. >>> If you have that working, then you can try the MPI version of HelloWorld: >>> >>> chuck-> cat HelloWorldMPI.java >>> >>> import mpi.*; >>> class HelloWorldMPI { >>> public static void main(String[] args) throws MPIException { >>> MPI.Init(args); >>> System.out.println("Hello world from rank " + >>> MPI.COMM_WORLD.Rank() + " of " + >>> MPI.COMM_WORLD.Size() ); >>> MPI.Finalize(); >>> } >>> } >>> >>> chuck-> /usr/local/bin/mpijavac -d classes HelloWorldMPI.java >>> /usr/local/bin/mpirun -np 2 /usr/bin/java -cp ./classes HelloWorldMPI >>> >>> Hello world from rank 0 of 2 >>> Hello world from rank 1 of 2 >>> >>> And you're ready to go ! >>> Except for one last thing ... >>> >>> 6. Odd behavior when trying to use "localhost" or the output from >>> `hostname` on the command line or in a hostfile >>> You will note in the examples above no host names, hostifle, or appfile was >>> used. >>> I found that trying to use "-host localhost" or "-hostfile hostfile" which >>> contained "localhost" would not work: >>> >>> mpirun -host localhost -np 2 ... >>> >>> in the examples above would not work, returning: >>> >>> chuck$ /usr/local/bin/mpirun -host localhost -np 2 /usr/bin/java -cp >>> ./classes HelloWorldMPI >>> -------------------------------------------------------------------------- >>> All nodes which are allocated for this job are already filled. >>> -------------------------------------------------------------------------- >>> >>> I posted this in a previous e-mail to this list, and it looks like a bug. >>> You can get around it by using the output from `hostname -s` which provides >>> a trimmed name: >>> >>> chuck-> /usr/local/bin/mpirun -host `hostname -s` -np 2 /usr/bin/java -cp >>> ./classes HelloWorldMPI >>> Hello world from rank 0 of 2 >>> Hello world from rank 1 of 2 >>> >>> You will also need to use this name in any hostfiles or appfiles as well >>> until the bug is fixed. >>> >>> Thanks to all for this great product ! >>> >>> Chuck Mosher for JavaSeis.org <http://javaseis.org/> >>> >>> >>> _______________________________________________ >>> users mailing list >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>> >>> _______________________________________________ >>> users mailing list >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>> >>> >>> _______________________________________________ >>> users mailing list >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>> _______________________________________________ >>> users mailing list >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/