Fork / Join和Map / Reduce之间的差异

问题描述 投票:42回答:2

Fork / Join和Map / Reduce之间的主要区别是什么?

它们的分解和分布类型(数据与计算)是否不同?

mapreduce fork-join
2个回答
36
投票

一个主要区别是,F-J似乎设计为可在单个Java VM上运行,而M-R显式设计为可在大型计算机集群上运行。这些是非常不同的方案。

F-J提供了以递归方式将任务划分为几个子任务的功能;更多的层次,现阶段“叉间”通信的可能性,更传统的编程。不要延伸(至少在纸上)超过一台机器。非常适合利用您的八核。

M-R仅进行一个大拆分,而映射的拆分根本不会相互对话,然后将所有内容一起缩减。单一层,直到拆分后才可进行拆分,并且可大规模扩展。非常适合利用您的云共享。


12
投票

[关于该主题的完整科学论文,Comparing Fork/Join and MapReduce

本文比较了三种并行范例的性能,可伸缩性和可编程性:fork / join,MapReduce和混合方法。

他们发现,基本上,Java fork / join具有较低的启动延迟,并且可以很好地扩展到较小的输入(<5MB),但是由于共享内存的大小限制,它无法处理较大的输入,单节点体系结构。另一方面,MapReduce具有显着的启动延迟(数十秒),但对于计算群集上更大的输入(> 100MB),可以很好地扩展。

但是如果您愿意的话,还有很多值得阅读的地方。

© www.soinside.com 2019 - 2024. All rights reserved.