2016-05-22 319 views
7

我對3件事感到困惑:mpirun,mpiexec和mpiexec.hydrampirun,mpiexec和mpiexec.hydra有什麼區別和關係?

在我的集羣中,它們都存在,它們全部屬於intel。

它們之間有什麼區別和關係?尤其是,mpiexec.hydra究竟是什麼?爲什麼mpiexec和hydra之間有一個點,這是什麼意思?

+0

可能的副本[什麼是Hydra MPI的最佳進展](http://stackoverflow.com/questions/6091397/whats-the-best-advance-of-hydra-mpi) –

+0

@JohnZwinck嗨,JohnZwinck。我不這麼認爲。我知道這篇文章,但在閱讀後,我仍然不明白。所以我發了這篇文章 – user15964

回答

15

mpirunmpiexec基本上是相同的 - 許多MPI實現中的進程啓動器的名稱。 MPI標準沒有提到如何啓動和控制等級,但它建議(儘管不要求),如果有任何類型的啓動器,它應該被命名爲mpiexec。一些MPI實現以mpirun開始,然後採用mpiexec以實現兼容性。其他實現則相反。最後,大多數實現都使用兩個名稱來提供它們的啓動器。在實踐中,mpirunmpiexec所做的事情應該沒有什麼不同。

不同的MPI實現有不同的啓動和控制過程的方法。 MPICH從一個名爲MPD(多用途守護進程或其他)的基礎架構開始。然後切換到新的Hydra流程管理器。由於Hydra的功能與MPD不同,因此基於Hydra的mpiexec採用的命令行參數不同於基於MPD的命令行參數,並且使用戶可以明確選擇基於Hydra的命令行參數,因此它可用作mpiexec.hydra。舊的稱爲mpiexec.mpd。可能有一個基於MPICH的MPI庫只提供Hydra啓動程序,然後mpiexecmpiexec.hydra將是相同的可執行文件。英特爾MPI基於MPICH,其新版本使用Hydra進程管理器。

Open MPI建立在開放運行環境(ORTE)的基礎上,其自身的進程啓動器被稱爲orterun。爲了兼容,orterun也符號鏈接爲mpirunmpiexec

總結:

  • mpiexec.something是MPI進程啓動的給定實現的特定版本
  • mpiexecmpirun是通用名稱的符號鏈接到實際發射通常副本或
  • mpiexecmpirun應該這樣做
  • 某些實現命名他們的發射器mpiexec,有些人命名它mpirun,有人將其命名爲兩者,當系統路徑中同時有多個MPI實現可用時,這通常是混淆的來源(例如,當從發行版安裝時)
+0

非常感謝你,Hristo Iliev。你的回答讓事情變得更清楚。看起來'mpirun'必須指定'-n'選項,而'mpiexec'和'mpiexec.hydra'不必是 – user15964

相關問題