MPI常用命令

1.mpd & 啓動本機的mpi守護進程

2. mpdboot:  

啓動集羣mpd守護進程,在運行MPI程序前必須開啓每個節點上的mpd守護進程。 
常用的參數: 
      
-n  nodenum,需要啓動的節點數量 
      
-f  hostsfile節點列表,與-n 一起使用表示啓動節點列表中的nodenum個節點。 
       
若沒有-n選項,則只啓動本地mpd進程。 
3. mpdtrace: 
查看集羣mpd守護進程。 
常用參數: 
       
-l  輸出mpdid和IP 
4. mpdexit: 
殺死指定節點mpd守護進程。 
常用參數: 
       -mpdid 
5. mpdallexit:

殺死所有的mpd守護進程。 

6.mpdtrace:查看MPI環境中的機器 

7. mpiexec: 
MPI程序運行命令,運行前必須開啓mpd守護進程。 
常用形式: 
       
mpiexec <g-options> <l-options> <executable> 
      
mpiexec <g-options> <l-options> <executable> 
      
mpiexec –configfile <file> 
其中,
      
<g-options>  全局選項運用於所有MPI進程。 
      
<l-options>  本地選項應用於部分MPI進程集合。 
      
<executable> 可執行文件的路勁。 
      
<file>       包含命令行選項的文件。 
全局選項中常用參數:
       
-gdb 調試運行 
        
-machinefile <file> MPI進程分配文件。 
本地選項中常用參數:
        
-n num 設置執行MPI程序的進程總數 
注意:全局選項和本地選項順序不要弄錯。 
8. mpirun: 
MPI程序快速執行命令,運行前不必運行mpdboot開啓守護進程。 
9. mpd測試命令:mpdcheck和mpdringtest 
mpdcheck用來檢查mpi安裝和運行時的故障和異常。 
mpdringtest測試一個mpd迴環的傳輸時間。 
10. mpd幫助命令:mpdhelp 
mpdhelp顯示所有mpd命令。 

11. 編譯命令

mpicc: 
MPI程序編譯命令。 
常用參數: -g  加入調試信息。
mpiCC/mpicc/mpif77/mpif90
mpiCC編譯並聯接用C++編寫的MPI程序 而mpicc是編譯並聯接用C編寫的MPI程序
mpif77和mpif90分別編譯並聯接用FORTRAN77和Fortran90編寫的MPI程序

這些命令在聯接時可以自動提供MPI需要的庫 並提供特定的開關選項 

注意mpiCC不能不能用於編譯C程序 常用的編譯選項是
      -mpilog    產生MPE的log文件
      -mpitrace 產生跟蹤文件
這樣在該MPI程序執行時會打印出其運行蹤跡信息,但是它和-mpilog 在編譯時不能同時存在 只能二者選一
      -mpianim 產生實時動畫
      -show     顯示編譯時產生的命令 但並不執行它
      -help      給出幫助信息
      -echo     顯示出當前正在編譯聯接的命令信息
此外它們還可以使用一般的C++/C/FORTRAN77/Fortran90通用的選項,含義和原來的編譯器相同

To compile a single file foo.c, use
   mpicc -c foo.c
To link the output and make an executable, use
   mpicc -o foo foo.o
Combining compilation and linking in a single command
   mpicc -o foo foo.c
最簡單的MPI運行命令是
mpirun –np N program
program是可執行MPI程序名 以這種方式進行執行
其中N是同時運行的進程的個數
需要首先對可用的機器進行配置 配置文件是$(HOME)/mpich/util/machines/machines.LINUX
在這個文件中 每一行寫上可用的機器名 比如
tp5.cs.tsinghua.edu.cn
tp1.cs.tsinghua.edu.cn
tp2.cs.tsinghua.edu.cn
tp3.cs.tsinghua.edu.cn
tp4.cs.tsinghua.edu.cn
83
tp8.cs.tsinghua.edu.cn

這樣就有6臺機器可供MPI使用 使用這種方式啓動時 可執行程序必須放在不同機
同帳戶的相同路徑下 比如在tp5.cs.tsinghua.edu.cn上$(HOME)/mpich/examples/basic/下
mpirun –np 6 cpi
則需要在{tp1,tp2,tp3,tp4,tp8}上的$(HOME)/mpich/examples/basic/下都有該cpi程序
如果不使用缺省的配置文件 則需要在命令行給出配置文件 該配置文件的
mashines.LINUX相同
比如
mpirun –machinefile hosts –np 6 cpi
只需在hosts中給出可使用的機器名字即可
還有一種更爲靈活的配置方式 它允許可執行程序有不同的名字 有不同的路徑
啓動方式是
mpirun –p4pg pgfile cpi
它的配置文件pgfile的格式如圖 38所示
<機器名>      <進程數>            <程序名>
<機器名>      <進程數>            <程序名>
<機器名>      <進程數>            <程序名>
圖 38 配置文件的通用格式
需要多少機器 就寫幾行 注意在這種啓動格式中 不需要指出啓動多少個進程 進
配置文件指定 一種可能的格式如圖 39所示
tp5   0   /home/pact/mpich/examples/basic/cpi
tp1   1   /home/pact/mpich/examples/basic/cpi
tp2   1   /home/pact/mpich/examples/basic/cpi
tp3   1   /home/pact/mpich/examples/basic/cpi
tp4   1   /home/pact/mpich/examples/basic/cpi
tp8   1   /home/pact/mpich/examples/basic/cpi
圖 39 配置文件示例
注意第一行的0並不表示在tp5上沒有進程
這裏0特指在tp5上啓動MPI程序的執行
mpirun是MPI程序的啓動腳本 它可以簡化作業的啓動程序 並且儘可能把不同特徵屏蔽掉
提供給用戶一個通用的MPI並行機的概念
MPI程序的一般啓動方式是
mpirun -np <number of processes> <program name and arguments>
一般MPI會自動決定使用什麼樣的設備和什麼樣的結構
若MPI無法決定 則可以通過選擇開關指定 可用的設備選項有
          chameleon (包括chameleon/pvm, chameleon/p4, ...)
          meiko     (使用meiko設備)
          paragon   (paragon上的ch_nx設備)
          p4        (工作站機羣上的ch_p4設備)
          ibmspx    (IBM SP2上的ch_eui)
          anlspx    (ANLs SPx上的ch_eui)
          ksr       (KSR 1和2上的ch_p4)
          sgi_mp    (SGI多處理器上的ch_shmem)
          cray_t3d (Cray T3D上的t3d)
          smp       (SMPs上的ch_shmem)
          execer    (一個定製腳本,目前還不穩定)
對於MPI無法識別的選項 它將拋棄 完整的MPI運行方式爲
mpirun [mpirun_options...] <progname> [options...]
在${MPIR_HOME}/util/machines下有對應的
      -arch <architecture> 指明結構信息
machines.<arch> 文件
      -h 幫助信息
      -machine <machine name> use startup procedure for <machine name>
      -machinefile <machine-file name> 列出可選的機器
      -np <np> 指出運行需要的處理器個數
      -nolocal 不在本地機運行
      -stdin filename 用給定的文件名作爲標準輸入
只顯示執行的命令 而不實際運行它
      -t 用於測試
     

發佈了25 篇原創文章 · 獲贊 3 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章