1

我想用python使用mpi4py軟件包進行分佈式編程。出於測試原因,我通過Google容器引擎設置了5節點集羣,並相應地更改了我的代碼。但現在,我的下一步是什麼?如何讓我的代碼運行並在所有5個虛擬機上工作?使用Python的Google Cloud Engine上的分佈式編程(mpi4py)

我試圖從我的集羣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蟒蛇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。

回答

1

所以,我想通了,我得到了什麼錯了,我想我應該張貼答案的人誰可能有類似的問題。

原來,我應該讀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

相關問題