Mapreduce与其他并行处理解决方案



那么,问题是:1. 对于以下问题,mapreduce的开销是否太高?有没有人知道每个map/reduce周期(例如Disco)需要多长时间才能完成一个非常轻的工作?2. 对于这个问题,是否有更好的替代mapreduce ?

在map reduce方面,我的程序由60个map阶段和60个reduce阶段组成,所有这些阶段需要在1秒内完成。我需要以这种方式解决的问题之一是大约64000个变量的最小搜索。搜索的hessian矩阵是一个块矩阵,沿对角线有1000个大小为64x64的块,最右边和最底部有一行块。块矩阵反演算法的最后一部分展示了这是如何完成的。每个Schur补S_A和S_D都可以在一个mapreduce步骤中计算出来。逆函数的计算又多了一步

从我目前的研究来看,mpi4py似乎是一个不错的选择。每个进程可以执行一个计算步骤,并在每个步骤之后向客户端报告,客户端可以使用新的状态变量报告,以便继续循环。这样进程状态不会丢失,计算可以继续进行任何更新。http://mpi4py.scipy.org/docs/usrman/index.html

这个wiki有一些建议,但是有没有人对最发达的解决方案有一个方向:http://wiki.python.org/moin/ParallelProcessing

谢谢!

MPI是一种通信协议,它允许通过在集群节点之间传递消息来实现并行处理。使用MPI实现的并行处理模型取决于程序员。

我没有使用MapReduce的任何经验,但在我看来,它是一个特定的并行处理模型,设计得很容易实现。这种抽象可以节省您的编程时间,并且可能会也可能不会为您的问题提供合适的解决方案。这完全取决于你想要做的事情的性质。

并行处理的诀窍在于,最合适的解决方案通常是特定于问题的,如果不了解问题的更多细节,就很难提出建议。

如果您能告诉我们更多关于您运行工作的环境以及您的程序适合Flynn分类法的地方,我可能能够提供一些更有用的建议。

最新更新