我学习了各种并行编程范式的基础知识,如OpenMP、MPI和OpenCL。但是我对Map-Reduce编程模型的了解不多。
众所周知,许多流行的公司都采用Map-Reduce编程模型来解决大规模数据密集型任务。而MPI则是为高性能计算机和工作站集群设计的。
因此,我的第一个困惑是... 我可以使用Map-Reduce模型代替MPI标准,还是反之亦然?还是要根据具体应用情况而定?
它们之间的确切区别是什么?
Which one is better and when?
我学习了各种并行编程范式的基础知识,如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的主要优点似乎是集中于这个单一的并行概念,从而减少了您需要学习以使用它的接口。