当前位置:  开发笔记 > 开发工具 > 正文

MPI比MapReduce更适合哪些场景?

如何解决《MPI比MapReduce更适合哪些场景?》经验,为你挑选了2个好方法。

据我所知,MPI让我能够更好地控制集群中不同节点的通信方式.

在MapReduce/Hadoop中,每个节点进行一些计算,与其他节点交换数据,然后整理其结果分区.看起来很简单,但由于您可以迭代这个过程,甚至像K-means或PageRank这样的算法也能很好地适应模型.在具有调度位置的分布式文件系统上,性能显然很好.相比之下,MPI让我可以明确控制节点如何相互发送消息.

任何人都可以描述一个集群编程场景,其中更通用的MPI模型比简单的MapReduce模型更明显吗?



1> High Perform..:

几乎任何科学代码 - 有限差分,有限元等等.哪种类型导致循环答案,任何不容易映射到MapReduce的分布式程序都可以用更通用的MPI模型更好地实现.不确定这对你有多大帮助,我会在发布后直接回答这个问题.


哦,我不能低估自己的答案 - 其他人可以帮我.
并不是的.我正在考虑有限差分求解器等计算,其中各个进程(在单个处理器上)计算机在整个域的一部分上,然后交换光环信息,然后进行计算.我发现很难看出这将如何映射到MapReduce.
与计算的重叠沟通主要是一个神话.昂贵的网络可以做到(他们使用DMA),但通常CPU涉及打包缓冲区.我们还没有非阻塞集合(尽管这可能会进入MPI-3),这是一个可以有意义地执行大量计算的用例.MPI是一种更通用,性能更高的模型,MapReduce为算法的"并行"部分几乎无关紧要的用例提供了更好的容错能力.

2> Gitmo..:

虽然这个问题已得到解答,但我想补充/重申一个非常重要的观点.

MPI最适合需要大量进程间通信的问题.

当数据变大(PB,任何人?),并且几乎没有进程间通信时,MPI就变得很痛苦.这是因为进程将花费所有时间相互发送数据(带宽成为限制因素),并且您的CPU将保持空闲状态.也许更大的问题是阅读所有数据.

这是Hadoop之类的基本原因.数据也必须分发 - Hadoop分布式文件系统!

简而言之,MPI适用于任务并行,Hadoop适用于数据并行.


这有点不准确.MPI的主要焦点是域分解算法,高度数据并行域,但在子域之间进行一些通信.数据也可以用MPI本地存储.当通信模式具有某些位置并且任何时候需要低延迟减少时,MPI都很好.当容错比绝对性能更重要时,MapReduce/Hadoop是好的.
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有