5

Pythonには、SMPベースのシステムまたはクラスター全体での並列処理を支援するために利用できるさまざまなパッケージがあるようです。サーバーがジョブのキューを維持し、クライアント(ローカルまたはリモート)が接続して、キューが空になるまでジョブを実行するクライアントサーバーシステムを構築することに興味があります。上記のパッケージのうち、推奨されるものとその理由は何ですか?

編集:特に、私はいくつかの入力を受け取り、しばらくの間物事を処理するシミュレーターを作成しました。ユーザーが指定した信頼区間内の平均を推定するために、シミュレーションから十分なサンプルを収集する必要があります。処理を高速化するために、さまざまなシステムでシミュレーションを実行できるようにしたいと考えています。各システムは、収集したサンプルを一定の間隔でサーバーに報告します。次に、サーバーは信頼区間を計算し、クライアントプロセスを続行する必要があるかどうかを判断します。十分なサンプルが収集された後、サーバーはすべてのクライアントシミュレーションを終了し、過去の結果に基づいてシミュレーションを再構成し、プロセスを繰り返します。

クライアントプロセスとサーバープロセス間の相互通信が必要なため、バッチスケジューリングが実行可能なソリューションであるかどうか疑問に思います。申し訳ありませんが、そもそももっと明確にすべきでした。

4

4 に答える 4

2

ParallelPythonを試してみてください。使いやすいようで、必要なジョブとキューのインターフェイスを提供する必要があります。

于 2010-01-15T09:06:09.220 に答える
1

また、map/reduce フレームワーク Hadoop には、2 つの異なる Python ラッパーもあります。

http://code.google.com/p/happy/

http://wiki.github.com/klbostee/dumbo

Map/Reduce は、問題の一般的なパターンを解決するための多くのレシピを備えた優れた開発パターンです。

クラスターをまだ持っていない場合、Hadoop 自体は、完全なジョブ スケジューリング、クラスター全体でのデータの自動データ分散 (HDFS) などを備えているため、優れています。

于 2010-01-13T00:25:35.657 に答える
0

質問に「scientific-computing」というタグを付け、クラスターについて言及したことを考えると、タイトルから推測できるように並列アプリケーションを開発することが目標である場合、ある種の MPI ラッパーが当然の選択と思われます。繰り返しになりますが、質問のテキストは、バッチ スケジューラを開発することを示唆しています。ですから、あなたがどのような質問をしているのか、私にはよくわかりません。

于 2010-01-12T20:23:39.513 に答える
0

これを行う最も簡単な方法は、中間サンプルを終了時に別のファイル (またはデータベース) に出力し、これらの出力ファイルが十分かどうか、またはさらにジョブを送信する必要があるかどうかを確認するプロセスを時折実行することです。 .

于 2010-01-12T21:30:27.193 に答える