【发布时间】:2013-08-06 06:10:54
【问题描述】:
我正在研究各种并行编程模型,但偶然发现了 MPI。有几件事我不确定。据我了解:
- MPI 的主要功能是允许在集群中并行运行的相关进程之间进行通信。这是正确的吗?
- 程序在主节点上运行,主节点又将特定任务传达给工作节点 - 并接收结果。无需在每个工作程序节点上都有一份代码副本。
此外,我发现的少数更新的 MPI 框架似乎只支持有限的语言集。我正在考虑在 Java 中对此进行试验,但我发现的所有 Java MPI 库要么已经过时,要么似乎没有 C 和 Fortran 的成熟度。这是为什么?我认为消息传递对于编写并行或分布式程序的任何人来说都是一个非常有用的功能,那么为什么 MPI 在其利基之外没有更受欢迎呢?
【问题讨论】:
-
MPI 更多地用于科学编程,它在那里有使用的历史,并且科学界选择的语言(很长一段时间)一直是/是 C/Fortran。
-
(1) 正确; (2) 不是。
-
那么为什么 MPI 在其利基市场之外没有更受欢迎? 可能是因为管理 MPI 及其用户社区的开发人员并不关心它在外部的受欢迎程度它的利基市场,而是他们关心其在其利基市场内的有效性和效率。 MPI 不是唯一的消息传递库,Java 程序员还有其他可用的选项。
标签: java parallel-processing mpi