Intellij IDEA 中的 MPJ Express(Java MPI)运行
MPJ Express (Java MPI) running in Intellij IDEA
我下载了mpj-v0_44解压到C:\mpj
输入Windows系统环境。变量 MPJ_HOME
到 C:\mpj
并在 PATH 中添加值 C:\mpj\bin
我在项目结构 -> 库中添加了 mpi.jar
、mpj.jar
并编写了简单的 helloworld mpi 程序:
import mpi.MPI;
public class Main {
public static void main(String[] args) {
MPI.Init(args);
int me = MPI.COMM_WORLD.Rank();
int size = MPI.COMM_WORLD.Size();
System.out.println("Hello world from <"+me+"> of <"+size+">");
MPI.Finalize();
}
}
我创建了 运行 图片上描述的配置:
但是我得到以下错误:
MPJ Express (0.44) is started in the multicore configuration
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at runtime.starter.MulticoreStarter.run(MulticoreStarter.java:281)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: 0
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
... 6 more
我在 eclipse 中发现了类似的问题,但 none 解决方案有效:
java.io.FileNotFoundException: null\conf\wrapper.conf (The system cannot find the path specified)
"Unresolved compilation problems" from running MPJ express in Eclipse Indigo
在 Eclipse 中一切正常,但我需要 Intellij IDEA!
PS:
(如果你需要 javadoc 添加整个 C:\mpj\lib
文件夹和 C:\mpj\src
库源文件夹)
您需要将主要 class 更改为
"runtime.starter.MPJRun"
和 VM 选项以包括您的主要 class
"-jar $MPJ_HOME$\lib\starter.jar nz.geek.colin.mpj.Main -np 4"
这是因为 MPJExpress 运行然后加载您的程序以创建多个进程。
如果 IntelliJ 抱怨 runtime.starter.MPJRun 未找到,您可以忽略它,但如果警告困扰您,您可以将 starter.jar 添加到项目中。
我下载了mpj-v0_44解压到C:\mpj
输入Windows系统环境。变量 MPJ_HOME
到 C:\mpj
并在 PATH 中添加值 C:\mpj\bin
我在项目结构 -> 库中添加了 mpi.jar
、mpj.jar
并编写了简单的 helloworld mpi 程序:
import mpi.MPI;
public class Main {
public static void main(String[] args) {
MPI.Init(args);
int me = MPI.COMM_WORLD.Rank();
int size = MPI.COMM_WORLD.Size();
System.out.println("Hello world from <"+me+"> of <"+size+">");
MPI.Finalize();
}
}
我创建了 运行 图片上描述的配置:
但是我得到以下错误:
MPJ Express (0.44) is started in the multicore configuration
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at runtime.starter.MulticoreStarter.run(MulticoreStarter.java:281)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: 0
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
... 6 more
我在 eclipse 中发现了类似的问题,但 none 解决方案有效:
java.io.FileNotFoundException: null\conf\wrapper.conf (The system cannot find the path specified)
"Unresolved compilation problems" from running MPJ express in Eclipse Indigo
在 Eclipse 中一切正常,但我需要 Intellij IDEA!
PS:
(如果你需要 javadoc 添加整个 C:\mpj\lib
文件夹和 C:\mpj\src
库源文件夹)
您需要将主要 class 更改为
"runtime.starter.MPJRun"
和 VM 选项以包括您的主要 class
"-jar $MPJ_HOME$\lib\starter.jar nz.geek.colin.mpj.Main -np 4"
这是因为 MPJExpress 运行然后加载您的程序以创建多个进程。
如果 IntelliJ 抱怨 runtime.starter.MPJRun 未找到,您可以忽略它,但如果警告困扰您,您可以将 starter.jar 添加到项目中。