2011-09-07 45 views
0

所以,問題是: 1.對於以下問題,mapreduce開銷太高了嗎?有沒有人知道每個地圖/縮小週期(例如迪斯科)需要多長時間才能完成一項非常輕鬆的工作? 2.對於這個問題,有沒有比mapreduce更好的選擇?mapreduce vs其他並行處理解決方案

在地圖縮小術語中,我的程序由60個地圖階段和60個縮小階段組成,所有這些階段一起需要在1秒內完成。我需要以這種方式解決的問題之一是具有約64000個變量的最小搜索。用於搜索的Hessian矩陣是塊矩陣,沿着對角線1000個大小爲64×64的塊,以及在極右和底部的一行塊。最後一部分:block matrix inversion algorithm顯示了這是如何完成的。每個Schur補充S_A和S_D可以在一個mapreduce步驟中計算。逆的計算需要更多的步驟。

從我的研究到目前爲止,mpi4py似乎是一個不錯的選擇。每個進程都可以執行一個計算步驟,並在每個步驟後向客戶端報告,並且客戶端可以使用新的狀態變量進行報告以使循環繼續。這樣,進程狀態不會丟失,計算可以繼續進行任何更新。 http://mpi4py.scipy.org/docs/usrman/index.html

本維基持有一些建議,但沒有人對最發達的解決方案方向: http://wiki.python.org/moin/ParallelProcessing

謝謝!

+1

map-reduce和MPI是根本不同的方法,不是嗎?哪一個更適合這個問題? – 2011-09-07 21:08:40

+0

是的,他們是不同的,問題是如果一個人明顯比另一個更好。另外,對於這個特殊問題,最爲發達的替代方案是什麼? – fodon

回答

5

MPI是一種通信協議,它允許通過在羣集節點之間傳遞消息來實現並行處理。用MPI實現的並行處理模型取決於程序員。

我還沒有使用MapReduce的經驗,但在我看來,它是一個特定的並行處理模型,並且設計起來很容易實現。這種抽象應該可以節省編程時間,並且可能會或可能不會爲您的問題提供合適的解決方案。這一切都取決於你想要做的事情的性質。

並行處理的訣竅是,最合適的解決方案通常是問題特定的,不知道關於您的問題的更多細節,因此很難提出建議。

如果您可以告訴我們更多關於您正在運行您的工作的環境以及您的程序適合Flynn's taxonomy的位置,我可能會提供一些更有幫助的建議。

+0

這是SIMD。但是,爲了更準確地描述,請查看我修改後的問題陳述。 – fodon

相關問題