2011-06-29 33 views
1

我想在不同的機器集(具有Open Mpi 1.5的所有Linux機器)上運行帶有mpirun的程序。配置MPI hosts文件以使用多個用戶標識

現在我有機器在那裏我可以登錄username A,和另一組機器,我使用username B。所有機器都可以通過SSH訪問,但我無法弄清楚如何實現這一點。

我的hosts文件會是這樣的:

localhost   #username local 

machine_set_A_1 #username A 
machine_set_A_2 #username A 
... 

machine_set_B_1 #username B 
machine_set_B_2 #username B 
... 

它是實現這一目標成爲可能。謝謝。

+0

linux,unix或Windows? – Martlark

+0

什麼版本的mpi? – Martlark

+0

所有具有Open Mpi 1.5的Linux機器,問題更新 – 0xFF

回答

-1

通常,您只需在每臺要運行mpi作業的機器上安裝mpi。然後在您的mipexec調用中,您將指定標識具有mpi的主機/機器的機器文件。 mpi smpd /守護進程將在每臺主機上爲您啓動作業。

實施例:

mpiexec -f machinefile -n 32 a.out 

機文件看起來像:

host1.some.place:16 
host2.some.place:16 

這意味着兩個主機與每個16個核。

參考:

mpich2 documentation

+1

以及它如何知道要在機器上執行命令時使用哪個用戶?我的問題是我有不同的用戶! – 0xFF

+0

我不知道unix。抱歉。 – Martlark

2

我能想到的要做到這一點的唯一方法是創建您的進程啓動做SSH USER1 @主機對一些包裝,而對於其他用戶2 @主機名。您可以通過

mpirun -mca orte_rsh_agent "/path/to/mysshwrapper" -machinefile machines.txt -np 4 ./subarray 

設置進程啓動SSH代理,然後你必須適當的用戶名參數注入呼叫從自己包裝爲SSH。

您當然還必須設置ssh密鑰,以便您登錄其他用戶名帳戶時將無密碼。

+1

可以創建一個SSH客戶端配置文件,並用'Host'關鍵字指定不同的主機配置。對於每個主機,可以用'User'關鍵字指定登錄用戶名。應該比創建包裝腳本更簡單。 –

+0

@HristoIliev是的,這在簡單性和實用性方面都是一個更好的答案(即使在mpirun之外,這也是有用的)。你應該把它作爲一個正確的答案,而不是對這個問題發表評論,這樣才能獲得應有的知名度。 –

2

試圖找到我自己的問題的解決方案我剛剛找到類似的東西(在http://wiki.mpich.org/mpich/index.php/Using_the_Hydra_Process_Manager)。這可能對您有所幫助,但這是針對MPICH的。

使用水潤上機與不同的用戶名

水潤只支持一些發射器(如ssh和rsh),使用不同的用戶名。爲此,主機文件應該包含一個「user =」條目。

一個例子

shell$ cat hosts 

     donner user=foo 
     foo  user=bar 
     shakey user=bar 

編輯

有關的openmpi請參考:http://www.open-mpi.org/faq/?category=rsh#rhosts-file

2

OpenSSH客戶端支持每個主機配置,與此類似:

Host machine_set_A_1 machine_set_A_2 ... 
User username_A 

Host machine_set_B_1 machine_set_B_2 ... 
User username_B 

Host指令將以下所有聲明(直到下一個Host指令)都限制爲僅適用於與主機名相匹配的連接,該連接與指令後給出的任何模式相匹配。

SSH客戶端配置文件通常在/etc/ssh/ssh_config(系統範圍配置)和~/.ssh/config(用戶特定配置;指令覆蓋來自系統配置的那些指令)中找到。

ssh_config(5)的手冊頁包含關於可用關鍵字的更多信息,以及有關支持哪些模式的更多信息(使用類似Host *.groupA.uni.edu(如果適用)可以節省某些鍵入的內容)。

+0

+1;我認爲這顯然是做到這一點的方法。 –

+0

@JonathanDursi,你的回答適用於更一般的情況,因爲包裝器也可以做其他不同的事情,而不是簡單地指定正確的用戶名(例如提供與SGE之類的集成)。你不應該刪除它。 –

+0

回想起來,它似乎是黑客,但如果你認爲它可能在其他一些情況下有用,我會取消刪除。 –

相關問題