0

因此,问题是: 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

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

谢谢 !

4

1 回答 1

5

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

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

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

如果您能告诉我们更多关于您运行工作的环境以及您的程序在哪里适合Flynn 的分类,我可能会提供一些更有帮助的建议。

于 2011-09-08T02:01:30.353 回答