Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要一些关于MPI的说明吗_Java_Parallel Processing_Mpi - Fatal编程技术网

Java 需要一些关于MPI的说明吗

Java 需要一些关于MPI的说明吗,java,parallel-processing,mpi,Java,Parallel Processing,Mpi,我正在研究各种并行编程模型,我刚刚偶然发现了MPI。有几件事我不确定。据我所知: MPI的主要功能是允许在集群中并行运行的相关进程之间进行通信。这是正确的吗 程序在主节点上运行,主节点将特定任务传递给工作节点,并接收结果。不需要在每个工作节点上都有代码副本 此外,我发现的少数几个更新的MPI框架似乎只支持一组受限的语言。我想在Java中尝试一下,但我发现的所有JavaMPI库要么已经过时,要么似乎没有C和Fortran的成熟度。为什么呢?我认为消息传递对于任何编写并行或分布式程序的人来说都是一个

我正在研究各种并行编程模型,我刚刚偶然发现了MPI。有几件事我不确定。据我所知:

  • MPI的主要功能是允许在集群中并行运行的相关进程之间进行通信。这是正确的吗
  • 程序在主节点上运行,主节点将特定任务传递给工作节点,并接收结果。不需要在每个工作节点上都有代码副本

  • 此外,我发现的少数几个更新的MPI框架似乎只支持一组受限的语言。我想在Java中尝试一下,但我发现的所有JavaMPI库要么已经过时,要么似乎没有C和Fortran的成熟度。为什么呢?我认为消息传递对于任何编写并行或分布式程序的人来说都是一个非常有用的功能,那么为什么MPI在其范围之外不更受欢迎呢?

    MPI传统上是一种SPMD模型,其中一个代码运行在多个进程上(通常分布在多个节点/处理器/核心等上)。这些进程使用MPI(消息传递接口)中的调用显式传递消息。然后,各个流程可以开始工作,并在必要时再次进行沟通。它不是一种任务语言,作业可以自动分配到工作节点。还有其他语言可以做类似的事情(Hadoop/MapReduce、Charm++等可能更适合该模型)

    在由MPI论坛决定的MPI标准()中,指定了特定的语言要求。到目前为止,MPI实现只需要三种语言:C、C++和FORTRAN(实际上C++的要求已经被删除)。原因是这些语言是使用MPI的科学应用程序最常用的语言。这不会阻止其他语言绑定的存在,但支持每种语言对实现来说都是一个巨大的负担,而且并不总是可行的。还有许多其他可用的语言绑定:

    • Python:
    • 爪哇:
    • Perl:
    • C++:

    我敢肯定,对于一些更具异国情调的语言来说,还有比这更多的东西。只需搜索MPI,您肯定会找到相关信息。MPI实际上相当流行,甚至在科学界之外也是如此。有人试图在视频游戏社区、分布式数据库和其他领域使用它。然而,科学计算仍然是MPI的最大用户之一,并且仍然是论坛的主要关注点之一。

    MPI更多地用于科学编程,它在那里有使用历史,科学界选择的语言(很长一段时间)一直是C/Fortran。(1)是正确的;(2) 不是。那么为什么MPI在其细分市场之外不更受欢迎呢?可能是因为管理MPI及其用户社区开发的人员并不关心其在利基市场之外的受欢迎程度,而是关心其在利基市场内的有效性和效率。MPI不是唯一的消息传递库,Java程序员还有其他选择。是的,但我刚刚查看了您发布的Java链接。这一切都是“暂时的”、“仍在继续的”、“正在进行的”。。。。不会给人留下流行或成熟的印象。你是对的。它已经不存在很长时间了,所以它不会像“官方支持的”语言那样成熟。然而,它将(AFAIK)起作用。你可能需要得到夜间柏油球而不是上一个版本,但你可以保持这种方式。我说不出它的流行程度,开放MPI Java实现是“临时的”,这是对的。FWIW,我们正准备将其新版本提交到OpenMPI SVN主干上——可能在本周晚些时候。它比以前的版本更完整,性能更好,味道更好,填充更少,等等。本周晚些时候检查夜间快照tarball。这里将有一个Java自述文件,描述如何使用它,等等。