2011-10-22 42 views
1

我需要編寫一個計算密集型的仿真程序。我試着編寫這個程序的多線程版本,但它花費了太多時間。現在我計劃擴展到多個節點(可能通過Amazon EC2節點)。用於新分佈式計算項目的Python?

我對Python已經很熟悉了。如果我關心速度,Python是否配備了一些並行模塊是一個可行的選擇,還是我最好去Erlang之類的其他框架/語言?

你甚至可以在Erlang編寫一個模擬程序嗎?

該項目更多的是關於瓜分計算,而不是瓜分的數據集,所以我沒有考慮基於地圖的框架減少

回答

1

如果您已經熟悉python了,我會建議您在python中保持模擬(並在C中加速關鍵部分)並使用Erlang進行管理。在Erlang寫模擬將遠離你的舒適區(即使是我個人也會這麼做)。您可能可以重新使用部分Erlang項目作爲Disco projectRiak core。用一些次優的POC開始你的項目,並在迭代中調整它。它意味着從python開始,將它嵌入到Erlang(可能是Disco),然後移動它,直到對性能和功能不滿爲止。你最終可以得到任何東西,包括純粹的Erlang解決方案或使用NIF或其他任何滿足你需求的BEAM中的修正Python。

2

dispy是一個用Python進行分佈式計算的框架。它使用asyncoro,一個使用協程的異步併發編程框架,以及一些erlang的特性(廣義上講)。免責聲明:我是這兩個框架的作者。