2012-02-23 69 views
3

由于我学习了各种并行范型标准的基础知识,如OpenMP,MPI,OpenCL来编写并行编程。但是我对Map-Reduce编程模型没有太多的了解。MPI标准和Map-Reduce编程模型之间的比较?

众所周知,各种流行的公司都在遵循Map-Reduce编程模型来解决他们庞大的数据密集型任务。与MPI一样,它被设计用于大规模并行机器和工作站集群上的高性能计算。

所以我的第一个困惑是...... 我可以使用Map-Reduce模型而不是MPI标准或反之亦然吗?或者取决于应用程序!

它们之间的确切区别是什么?

Which one is better and when? 

回答

4

你可以理解的map-reduce作为MPI-功能的子集,因为它有些类似于用户自定义函数的MPI的集体操作。因此,您可以使用MPI而不是Map-Reduce,反之则不然,因为在MPI中,您可以描述更多的操作。 Map-Reduce的主要优势似乎是将这种注意力集中在这个单一的并行概念上,从而减少了为了使用它而需要学习的接口。

+0

它真的是一个...现在假设我们有一个问题,只需要集体操作,那么在这种情况下哪一个将是更好的选择来解决问题? – Gopal 2012-02-23 20:37:41

+1

那么,看一下:http://www.unixer.de/publications/img/hoefler-map-reduce-mpi.pdf,他们描述了如何实现MPI的map-reduce ontop以使其更快。因此,结论可能是,如果你想要速度,你最好用MPI。否则,您可以更具体地定义您的标准。 – haraldkl 2012-02-23 21:03:06