2010-08-13 44 views
1

我有一個高度可並行化的計算密集型項目:基本上,我有一個函數,需要在大型表(Postgresql)中的每個觀察值上運行。該函數本身是一個存儲的Python過程。我應該如何配置Amazon EC2來執行可並行化的數據密集型計算?

亞馬遜EC2看起來非常適合該項目。

我的問題是這樣的:我應該製作一個已經包含數據庫的自定義圖像(AMI)嗎?這似乎具有最小化數據傳輸和使並行化簡單的優點:每個圖像可以得到一些指定的索引塊來計算,例如,圖像1得到1:100,圖像2 101:200等。分割數據和實例(大多數如何指導建議)似乎對我的應用程序沒有意義,但我對此非常陌生,所以我不相信我的直覺是正確的。

回答

1

您一定希望將數據和服務器實例分開,以便在完成實例時保持數據更改。您最好的選擇是從一個基本映像開始,該映像包含要使用的數據庫平臺的OS &,根據您的需要對其進行定製,然後裝入一個或多個包含您的數據的EBS卷。一旦完成自定義,您可能還想創建自己的服務器實例,除非您所做的事非常簡單。

一些有用的鏈接:

http://docs.amazonwebservices.com/AmazonEC2/gsg/2006-10-01/creating-an-image.html http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=100&externalID=1663

(你說的Postgres,但這個MySQL的教程涵蓋了相同的基本概念,你要記住)

+0

謝謝。如果我的數據絕對不會改變,這個建議是否仍然有效? – 2010-08-13 23:43:45

+0

如果你的數據絕對不會改變,你可以將它包含在你自己的圖像中,但我不確定性能是否相同。這可能比較簡單,如果需要,您可以隨時遷移到掛載的EBS卷。 – 2010-08-14 02:41:29

+0

謝謝 - 我昨天在EC2上玩過,而且你確定。對,重新:把所有內容放入EBS卷。供未來的搜索者查找此主題的FYI - 我發現這個一步一步的幫助: http://deadprogrammersociety.blogspot.com/2009/08/postgresql-on-ubuntu-on-ec2.html – 2010-08-15 14:25:19

1

如果您已經得到了用Python實現的功能,最簡單的路線可能是查看PiCloud,它爲您提供了一個非常簡單的界面,用於在EC2上運行Python函數,爲您處理幾乎所有的事情。無論它在經濟上是否合理,都取決於每個函數調用需要發送多少數據,以及計算運行需要多長時間。

相關問題