2
votes

I work with OpenMPI. I want to run Hello.java and Ring.java from the examples here . I compile Hello.java with this line:

javac Hello.java

Then I can run it with mpirun.

But when I compile it, I get this error:

Hello.java:25: error: package mpi does not exist
import mpi.*;
^
Hello.java:28: error: cannot find symbol
    static public void main(String[] args) throws MPIException {
                                                  ^
  symbol:   class MPIException
  location: class Hello
Hello.java:31: error: cannot find symbol
    MPI.Init(args);
    ^
  symbol:   variable MPI
  location: class Hello
Hello.java:33: error: package MPI does not exist
    int myrank = MPI.COMM_WORLD.getRank();
                    ^
Hello.java:34: error: package MPI does not exist
    int size = MPI.COMM_WORLD.getSize() ;
                  ^
Hello.java:37: error: cannot find symbol
    MPI.Finalize();
    ^
  symbol:   variable MPI
  location: class Hello
6 errors

can anyone tell me where I can find MPI package? or how can I resolve this problem?

PS: I run the file hello_c.c with mpicc and mpic++ without any problem.

2

2 Answers

3
votes

You should compile "Hello.java" with mpi classpath

javac -cp "path to mpi.jar" Hello.java

As I'm using "MAC OS" the "mpi.jar" is located in this path: "/usr/local/lib/mpi.jar"

So I compiled with this command:

javac -cp "/usr/local/lib/mpi.jar" Hello.java

You can also use "mpijavac":

mpijavac -cp "/usr/local/lib/mpi.jar" Hello.java

Then you can run your file with this command:

mpirun java Hello

If you are not able to find "mpi.jar" in your libs, maybe you didn't install open-mpi with java binding:

./configure --enable-mpi-java

For more information you can visit open-mpi with java

0
votes

Maybe, you must install openMPI with java libary (example) and (or) add mpi.jar to project