我對3件事感到困惑:mpirun,mpiexec和mpiexec.hydrampirun,mpiexec和mpiexec.hydra有什麼區別和關係?
在我的集羣中,它們都存在,它們全部屬於intel。
它們之間有什麼區別和關係?尤其是,mpiexec.hydra究竟是什麼?爲什麼mpiexec和hydra之間有一個點,這是什麼意思?
我對3件事感到困惑:mpirun,mpiexec和mpiexec.hydrampirun,mpiexec和mpiexec.hydra有什麼區別和關係?
在我的集羣中,它們都存在,它們全部屬於intel。
它們之間有什麼區別和關係?尤其是,mpiexec.hydra究竟是什麼?爲什麼mpiexec和hydra之間有一個點,這是什麼意思?
mpirun
和mpiexec
基本上是相同的 - 許多MPI實現中的進程啓動器的名稱。 MPI標準沒有提到如何啓動和控制等級,但它建議(儘管不要求),如果有任何類型的啓動器,它應該被命名爲mpiexec
。一些MPI實現以mpirun
開始,然後採用mpiexec
以實現兼容性。其他實現則相反。最後,大多數實現都使用兩個名稱來提供它們的啓動器。在實踐中,mpirun
和mpiexec
所做的事情應該沒有什麼不同。
不同的MPI實現有不同的啓動和控制過程的方法。 MPICH從一個名爲MPD(多用途守護進程或其他)的基礎架構開始。然後切換到新的Hydra流程管理器。由於Hydra的功能與MPD不同,因此基於Hydra的mpiexec
採用的命令行參數不同於基於MPD的命令行參數,並且使用戶可以明確選擇基於Hydra的命令行參數,因此它可用作mpiexec.hydra
。舊的稱爲mpiexec.mpd
。可能有一個基於MPICH的MPI庫只提供Hydra啓動程序,然後mpiexec
和mpiexec.hydra
將是相同的可執行文件。英特爾MPI基於MPICH,其新版本使用Hydra進程管理器。
Open MPI建立在開放運行環境(ORTE)的基礎上,其自身的進程啓動器被稱爲orterun
。爲了兼容,orterun
也符號鏈接爲mpirun
和mpiexec
。
總結:
mpiexec.something
是MPI進程啓動的給定實現的特定版本mpiexec
和mpirun
是通用名稱的符號鏈接到實際發射通常副本或mpiexec
和mpirun
應該這樣做mpiexec
,有些人命名它mpirun
,有人將其命名爲兩者,當系統路徑中同時有多個MPI實現可用時,這通常是混淆的來源(例如,當從發行版安裝時)非常感謝你,Hristo Iliev。你的回答讓事情變得更清楚。看起來'mpirun'必須指定'-n'選項,而'mpiexec'和'mpiexec.hydra'不必是 – user15964
可能的副本[什麼是Hydra MPI的最佳進展](http://stackoverflow.com/questions/6091397/whats-the-best-advance-of-hydra-mpi) –
@JohnZwinck嗨,JohnZwinck。我不這麼認爲。我知道這篇文章,但在閱讀後,我仍然不明白。所以我發了這篇文章 – user15964