2011-10-22 4 views
1

私は計算集中型のシミュレーションプログラムを書く必要があります。私はこのプログラムのマルチスレッドバージョンを書こうとしましたが、時間がかかりすぎています。今は複数のノードに展開する予定です(Amazon EC2ノード経由)。新しい分散コンピューティングプロジェクトのためのPython?

私はすでにPythonに精通しています。私がスピードを気にしていれば、Pythonにはいくつかの並列モジュールが用意されていますか、あるいはErlangのような他のフレームワーク/言語に行くのがよいでしょうか?

Erlangでシミュレーションプログラムを作成することはできますか?

プロジェクトは、計算を分割するのではなくデータセットを分割についての詳細ですので、私はマップに基づくフレームワークを考慮していない

答えて

0

を減らし、あなたの問題は自明並列化していますか?次に、EC2の代わりにElastic Map Reduceを見てみたいかもしれません。

1

もしあなたがすでにPythonに慣れているなら、私はPythonでシミュレーションを維持し(そしてCで重要な部分をスピードアップする)、Erlangを使ってそれを管理することをお勧めします。 Erlangでのライティングシミュレーションは、あなたの快適ゾーンから離れているでしょう(個人的には私もそうします)。おそらく、Erlangプロジェクトの一部をDisco projectまたはRiak coreとして再利用できます。準最適なPOCでプロジェクトを開始し、反復で調整します。それは、Pythonで始まり、Erlang(おそらくDisco)に埋め込み、パフォーマンスや機能に満足できなくなるまでビットを動かすことを意味します。純粋なアーラン(Erlang)ソリューションやBEAMのPythonを含むものは、NIFなどのニーズを満たすもので終わることができます。

2

dispyは、Pythonを使用した分散コンピューティングのフレームワークです。これは、コルーチンを使った非同期並行プログラミングのフレームワークであるasyncoroを使用し、erlangの機能(広義には)を使用します。免責事項:私はこれらの両方のフレームワークの著者です。

関連する問題