Java中的高性能集群计算(和MPI)

时间:2014-06-12 19:26:06

标签: java mpi cluster-computing hpc mpj-express

我正在尝试使用Java和Windows操作系统实现集群计算系统。我正在寻找一个

的解决方案
  1. 不是太过时了
  2. 相当容易安装和设置
  3. 有足够的文档来开始使用没有MPI先前知识的类和方法
  4. 至少在某种程度上是用户友好的
  5. 这可能是不可能的,但如果它与Java Concurrent框架的使用有点接近也会很好。

    我最初学习了一些关于Java Concurrent包的知识,并且很容易学会使用Runnable接口和ExecutorService在我的本地8核机器上编写并行程序,使我的所有类在这个过程中都是线程安全的。但是,我还没有找到一种标准机制来将这个编程框架扩展到集群。

    然后我了解了一个名为Java-Interop-Library(https://github.com/MicrosoftHPC/Java-Interop-Library)的GitHub项目,它可以与Microsoft HPC Pack一起使用。我通过Amazon EC2联网了一些云计算机并安装了HPC Pack。 Java-Interop-Library是编译和设置的噩梦。我不得不手动编辑几个批处理文件甚至一些Java代码来编译它。当我把它的大部分工作(但不是一切)时,我才开始认为必须有一个更简单的方法,然后我又开始搜索了。

    我的新搜索引导我进入MPJ-Express(http://mpj-express.org)。我仔细阅读了网站上的文档,看起来很容易设置。他们甚至有关于如何将它与Eclipse集成并进行调试的文档。但是,我永远找不到关于如何实际使用类和方法的任何文档(这是一个简单的hello world示例,但它并不够接近)。

    更多搜索引导我到MPIJava,Hadoop和GridGain。没有MPI或MPJ的经验,并且知道MPJ是从MPIJava发展而来的,我开始尝试为此找到文档。我找到了一些文档,但有些文档很旧,我不确定我是否在正确的轨道上。我在另一篇StackOverflow帖子上看到了GridGain的提及,并访问了他们的网站。它们似乎有一个集群计算框架,一个简单的发布示例甚至使用看似使用Runnable对象的类,这对我来说对Java Concurrent框架有一些经验似乎很有吸引力。我对Hadoop一无所知,除了它可能是一种可能性。

    我真的只需要更好的方向来完成Java的集群计算。我觉得我只是在转动轮子。

1 个答案:

答案 0 :(得分:3)

您可以使用MPJ Express,我认为您已经完成了设置并完成了环境设置。 MPJ Express可以在多核模式和集群模式下执行并行Java应用程序。必须要提到的是,相同的应用程序无需任何修改即可适用于这两种模式,因此您可以选择在多核模式下开发和测试应用程序,完成后它也可以运行群集模式。虽然目前还不太清楚你想要开发什么,但就其Java文档而言,你可以在这里找到它们:http://mpj-express.org/docs/javadocs/index.html。这些是开发任何并行Java应用程序所需的所有类和方法。

学习集群使用MPJ Express进行编程非常简单,因为您可以访问一组全面的工作示例。为此,解压缩MPJ Express并探索测试目录。它包含多个测试用例和并行Java应用程序的工作示例。您可以分别在mpj-v0_xx / test / mpi / pt2pt和mpj-v0_xx / test / mpi / ccl中获得点对点和集体通信的示例。您可以通过使用点对点和集体通信方法开发任何基本的并行应用程序。它将为您提供使用Java学习集群编程的先机。

如果您在群集上设置MPJ Express或执行测试目录中提供的示例时遇到任何问题,请告诉我。您还可以在以下页面上的MPJ Express邮件列表中发布您的查询:http://sourceforge.net/p/mpjexpress/mailman/?source=navbar