我已经学习了各种并行范例标准(例如 OpenMP、MPI、OpenCL)的基础知识来编写并行编程。但我对 Map-Reduce 编程模型了解不多。
众所周知,各种流行公司都在遵循 Map-Reduce 编程模型来解决其庞大的数据密集型任务。 MPI 专为大规模并行计算机和工作站集群上的高性能计算而设计。
所以我的第一个困惑是.. 我可以使用 Map-Reduce 模型代替 MPI 标准吗?反之亦然吗?或者这取决于应用程序!!
它们之间的具体区别是什么?
Which one is better and when?
最佳答案
您可以将 Map-Reduce 理解为 MPI 功能的子集,因为它有点类似于具有用户定义函数的 MPI 集体操作。因此,您可以使用 MPI 代替 Map-Reduce,但反之则不然,因为在 MPI 中您可以描述更多操作。 Map-Reduce 的主要优点似乎是集中于单一并行概念,从而减少了使用它时需要学习的接口(interface)。
关于mapreduce - MPI标准与Mapreduce编程模型的比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9418782/