Fork/Join和Map/Reduce的关键区别是什么?
它们的区别在于分解和分发的方式(数据 vs. 计算)吗?
这个主题有一整篇科学论文:比较Fork/Join和MapReduce。
该论文比较了三种并行范例的性能、可伸缩性和可编程性:fork/join、MapReduce和混合方法。
他们发现,Java的fork/join具有低启动延迟,并且对于小输入(<5MB)具有良好的扩展性,但由于共享内存单节点结构的大小限制,无法处理更大的输入。另一方面,在计算集群上,MapReduce的启动延迟显著(十秒左右),但对于更大的输入(>100MB)具有良好的扩展性。
如果您感兴趣,还有很多内容可以阅读。