2

mpi4py パッケージを使って python で分散プログラミングをしたいです。テストの目的で、Google コンテナー エンジンを介して 5 ノード クラスターをセットアップし、それに応じてコードを変更しました。しかし、今、私の次のステップは何ですか?5 つの VM すべてでコードを実行して動作させるにはどうすればよいですか?

クラスターから 1 つの VM に ssh 接続してコードを実行しようとしましたが、コードが配布されていないことは明らかでしたが、代わりに同じマシンにとどまりました :( [以下の例を参照]

.

コード:

from mpi4py import MPI

size = MPI.COMM_WORLD.Get_size()
rank = MPI.COMM_WORLD.Get_rank()
name = MPI.Get_processor_name()

print("Hello, World! I am process/rank {} of {} on {}.\n".format(rank, size,name))

.

出力:

mpiexec -n 5 python 5_test.py

こんにちは世界!私は gke-cluster-1-000000cd-node-mgff でプロセス/ランク 0/5 です。

こんにちは世界!私は gke-cluster-1-000000cd-node-mgff でプロセス/ランク 1/5 です。

こんにちは世界!私は gke-cluster-1-000000cd-node-mgff でプロセス/ランク 2/5 です。

こんにちは世界!私は gke-cluster-1-000000cd-node-mgff でプロセス/ランク 3/5 です。

こんにちは世界!私は gke-cluster-1-000000cd-node-mgff でプロセス/ランク 4/5 です。

4

1 に答える 1

2

だから、私は何が間違っていたのかを理解し、同様の質問をしている可能性のある人のために答えを投稿する必要があると思います.

結局のところ、mpi4py のドキュメントをよく読むべきでした:D

このコマンドmpirun -np 5 python 5_test.pyは、異なるプロセス上の単一のマルチコア ホストでプログラムを実行するためのものです。

ただし、さまざまなホストにタスクを分散したかったのです。したがって、コマンドが必要でしたmpirun --hostfile <hostfile> python 5_test.py。そして<hostfile>、次のようなファイルでなければなりません:

-- hostfile --

host1   slots=4

host2   slots=4

host3   slots=4

'--------------


.

便利なリンク: https://github.com/jbornschein/mpi4py-examples

于 2016-03-05T13:31:16.880 に答える