2016-11-14 25 views
0

我需要在8個節點上運行MPI應用程序,每個節點有16個CPU。 即使經過一番研究,我仍然不明白宿主文件是如何工作的。我使用R與doMPI和Rmpi庫。如何使用MPI創建主機文件?

這是我的理解至今:

我有一個HOSTFILE my-hosts看起來像:

node1 slots=16 
node2 slots=16 
. 
. 
. 

我可以簡單地通過nodeX調用節點?

如何獲取節點的名稱?

是否有任何功能,如getNodeName()

以下命令行是否足以啓動應用程序?

mpirun -np 1 -host my_host .... 

是否有必要在所有節點上都有hostfile?

+0

爲了避免我們重複您已經閱讀的內容,請在閱讀後說明您不理解的內容。它也可能有助於在計算機上提供詳細信息,例如操作系統。相關:https://www.open-mpi.org/faq/?category=running#mpirun-hostfile –

+1

@ Hack-R,我只是更新我的問題。往上看。 ;) – olegario

回答

1

節點的名稱必須是它們的IP地址或它們的DNS主機名。 如果知道IP地址,可以通過查詢DNS服務器(取決於您的系統:Windows,Linux等)來獲取節點的名稱。

例子:

localhost 
192.168.1.2 
host01.clusterdomain 

我建議你檢查,如果你正在使用的系統使用任何類型的job scheduler。如果是這樣,則不需要關心指定主機文件,因爲作業調度程序會處理該問題(您只需指定資源節點的數量即可)。

最後,如果您正在執行的進程管理器(的mpirunmpiexec的等)HOSTFILE僅在主機必要的。但是,使用共享文件系統將確保您的應用程序所需的所有文件(包括主機文件(如果您需要的話))將在羣集的每個節點上可用。

+0

謝謝兄弟!最後一個問題,即使有一個工作調度程序,我仍然需要使用-H name_node1,name_node2 ...? – olegario

+0

如果你有一個工作調度器,你可能根本不需要擔心主機名**(因爲主機可能會根據集羣的繁忙程度而改變)。通常您只需調用'mpirun/your/app/binary arguments',MPI實現就會使用作業調度程序設置的環境變量來猜測您的作業配置。如果你想做更精細的事情,這可能不適用,但對於最典型的用途,它可以直接使用。查看你的工作調度程序文檔,或要求管理員安裝一個(有許多可用,包括開源軟件)。 –