4

いくつかのAmazonEC2インスタンスで長時間実行されるPython分析プロセスを実行したいと考えています。コードはすでにPythonmultiprocessingモジュールを使用して実行されており、単一のマシンですべてのコアを利用できます。

分析は完全に並行して行われ、各インスタンスは他のインスタンスと通信する必要はありません。すべての作業は「ファイルベース」であり、各プロセスは各ファイルで個別に機能します...したがって、すべてのノードに同じS3ボリュームをマウントすることを計画していました。

マルチプロセッシング環境をセットアップして、任意の数のコンピューティングインスタンスで同時に実行できるようにするためのチュートリアルを知っている(または提案がある)人はいないかと思いました。

4

3 に答える 3

4

ドキュメントには、複数のマシンでマルチプロセッシングを実行するための適切なセットアップが記載されています。s3を使用することは、ec2インスタンス間でファイルを共有するための良い方法ですが、マルチプロセッシングを使用すると、キューを共有してデータを渡すことができます。

並列タスクにhadoopを使用できる場合は、マシン間で並列処理を抽出するための非常に優れた方法ですが、大量のIPCが必要な場合は、マルチプロセッシングを使用して独自のソリューションを構築することはそれほど悪くありません。

マシンを同じセキュリティグループに配置するようにしてください:-)

于 2011-06-27T02:01:55.257 に答える
0

ダンボを使います。これは、AmazonElasticMapReduceと互換性のあるHadoop用のPythonラッパーです。ダンボと統合するために、コードの周りに小さなラッパーを記述します。おそらく、reduceステップのないマップのみのジョブが必要であることに注意してください。

于 2011-06-23T20:56:45.117 に答える
0

私は最近IPythonを掘り下げてきましたが、箱から出してすぐに複数のホスト間で並列処理をサポートしているようです。

http://ipython.org/ipython-doc/stable/html/parallel/index.html

于 2011-06-28T09:26:53.177 に答える