我使用 OpenMPI。我想运行示例 here 中的 Hello.java 和 Ring.java 。 我用这一行编译 Hello.java:
javac Hello.java
然后我可以用 mpirun 运行它。
但是当我编译它时,我收到此错误:
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
谁能告诉我在哪里可以找到 MPI 包?或者我该如何解决这个问题?
PS:我使用 mpicc 和 mpic++ 运行文件 hello_c.c 没有任何问题。
最佳答案
您应该使用 mpi 类路径编译“Hello.java”
javac -cp "path to mpi.jar" Hello.java
由于我使用“MAC OS”,“mpi.jar”位于此路径中:“/usr/local/lib/mpi.jar”
所以我用这个命令编译:
javac -cp "/usr/local/lib/mpi.jar" Hello.java
您还可以使用“mpijavac”:
mpijavac -cp "/usr/local/lib/mpi.jar" Hello.java
然后您可以使用以下命令运行您的文件:
mpirun java Hello
如果您在库中找不到“mpi.jar”,可能您没有使用 java 绑定(bind)安装 open-mpi:
./configure --enable-mpi-java
欲了解更多信息,您可以访问open-mpi with java
关于java - OpenMPI:包 mpi 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32560073/