我已经学习了各种并行范例标准的基础知识,如OpenMP,MPI,OpenCL来编写并行编程。但我对Map-Reduce Programming模型知之甚少。
众所周知,各种流行公司都在遵循Map-Reduce编程模型来解决他们庞大的数据密集型任务。此外,MPI还专为大规模并行计算机和工作站集群上的高性能计算而设计。
所以我的第一个困惑是...... 我可以使用Map-Reduce模型而不是MPI标准,反之亦然吗?或者取决于申请!!
它们之间的确切区别是什么?
Which one is better and when?
答案 0 :(得分:5)
您可以将Map-Reduce理解为MPI功能的子集,因为它类似于具有用户定义函数的MPI集合操作。因此,您可以使用MPI而不是Map-Reduce,反之亦然,因为在MPI中您可以描述更多操作。 Map-Reduce的主要优势似乎是集中在这个单一的并行概念上,从而减少了为了使用它而需要学习的界面。