Parallel processing Map Reduce或其他分布式/并行设计模式?

Parallel processing Map Reduce或其他分布式/并行设计模式?,parallel-processing,mapreduce,distributed-computing,divide-and-conquer,fork-join,Parallel Processing,Mapreduce,Distributed Computing,Divide And Conquer,Fork Join,我有一个连接/组合图像集合的代码。我想将这个顺序代码重新构造成一个并行/分布式应用程序,因为我的图像集合非常大(大数据:-)。我正在考虑Map/Reduce,但不确定在Map/Reduce下这是否可行 #Sequential Code Result.Image <- NULL foreach(Image in Image.Collection) { Result.Image <- CombineImage(Result.Image, Image) } #顺序代码 Result

我有一个连接/组合图像集合的代码。我想将这个顺序代码重新构造成一个并行/分布式应用程序,因为我的图像集合非常大(大数据:-)。我正在考虑Map/Reduce,但不确定在Map/Reduce下这是否可行

#Sequential Code 
Result.Image <- NULL
foreach(Image in Image.Collection) {
  Result.Image <- CombineImage(Result.Image, Image)
}
#顺序代码

Result.Image从您的初始描述(foreach代码)可以看出,在处理#1和#2之前,您无法处理图像#3,因为您在Result.Image中积累了中间结果。现在,您的图表显示了一个不同的故事,兄弟节点可以并行处理,我想知道,即使是随机节点也可以并行组合。无论如何,我认为您可以将所有初始映像放入FIFO队列中,并尽可能多地抛出处理器(线程、机器或节点)。每个处理器拾取两个图像,组合它们,并将结果放回队列中。您可以这样处理,直到在队列中得到一张图像。

Hi Gabriel-是的,即使是随机节点也可以并行组合-组合1,2,3,4,5与组合3,2,4,5,1一样好。。。。。在我看来,您描述的FIFO队列解决方案非常好:-)