java - OpenMPI:包 mpi 不存在

标签 java mpi javac openmpi

我使用 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/

相关文章:

java - 如何在Elasticsearch中获取嵌套类型

java - 无法从 AppCompatActivity 访问 Activity 方法

c++ - NCurses 不恢复终端行为

java - java编译器是JVM的一部分吗?

maven - 增加 IntelliJ java 堆大小

java - 适用于 Android 的 Google+ java 入门应用程序出现黑屏?

java - 克隆有限的多维

java - 为什么java推理失败

linux - 如何观察 MPI 程序所有进程的运行时间

c++ - MPI_Op_create : candidate function not viable. 自定义结构指针不能解释为空指针