GAE MapReduce可以獲得多少計算密集型增益?我感興趣的場景是計算密集型的,例如:將單個線程單核應用程序中的萬億個隨機浮點數相乘。然後,想象一下,1000名MapReduce工作人員每人增加10億個隨機數字,並在所有員工完成時宣佈「完成」。如果重要,假設計費已啓用。 (它可能不會)。Google App Engine MapReduce的速度有多快?
編輯:一位評論者要求澄清。標題已修改。如果任務需要50000秒單線程,並且在另一個實現中,則使用1000個MapReduce工作人員,並在500秒後完成任務,則性能增益爲100倍。 1000名工人:增加100倍,只是稍微令人失望,但對於這個例子也是如此。 我怎樣才能早日康復?我可以要求10,000名工人嗎?這個問題可能與限制和配額有關。假設有足夠的預算。 MapReduce的計算密集型性能增益是否接近漸近線,如果是這樣,那麼漸近線的性能增益是多少?有關MapReduce的評論中還有一些信息適合面向URL的用戶生成的大量數據,但是,我的問題不是關於Datastore密集型應用程序的性能而是針對MapReduce重寫的同一應用程序。在這種計算密集型的情況下,數據存儲活動將會很少。我意識到任何MapReduce應用程序中總會有一些數據存儲區活動,但由於這是一個計算密集型方案,因此數據存儲區活動和數據存儲區實體的大小對計算的性能增益影響不大。任務將使用數據存儲的時間少於所用時間的1%。這種情況也不涉及大量的通信帶寬(除了達到MapReduce使用的任務排隊URL所需的最低限度)。問題在於將計算密集型單線程非MapReduce任務的已用時間與MapReduce上相同任務的已用時間進行比較,因爲MapReduce具有多線程,因爲它有多個工作線程。我一般使用「任務」一詞,換句話說,「任務就是工作」。收益可能(但不一定)是工人數量的函數,因此我在例子中提到了1000名工人。
基本上它有多快。請參閱編輯。 – H2ONaCl 2011-03-31 08:16:28
@broiyan更新了性能細節。 – 2011-03-31 11:56:50