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 用於測試
      -v 盡可能顯示詳細的信息
      -dbx 在dbx下啟動第一個進程
      -gdb 在gdb下啟動第一個進程
      -xxgdb 在xxgdb下啟動第一個進程
      -tv 在totalview上啟動
針對NEC - CENJU-3的特殊選項有
      -batch作為批處理作業執行
      -stdout filename 用指定的文件名作為輸出
      -stderr filename 用指定的文件名作為標准輸出
針對Nexus設備的特殊選項有
並且使-np -nolocal無效 自動選
      -nexuspg filename用給定的文件作為配置文件
擇 -leave_pg
      -nexusdb filename 使用Nexus給定的資源數據庫
針對工作站機群的特殊選項有
      -e 用execer來啟動程序
而不是execer
      -pg 用配置文件來啟動一個p4程序
      -leave_pg 運行結束后不刪除P4配置文件
      -p4pg filename用指定的進程組配置文件而不是臨時創建一個
使得-np和-nolocal無效 自動選擇 -leave_pg
      -tcppg filename使用指定的tcp進程組配置文件而不是臨時創建一個使得-np和-
nolocal無效
自動選擇 -leave_pg
      -p4ssport num 使用p4安全服務程序來啟動該程序
該服務器使用的端口號為
num 如果num=0 則使用環境變量MPI_P4SSPORT的值 該服務器可以加速進程的啟動
如果設置了MPI_USEP4SSPORT和MPI_P4SSPORT的值 其效果就如同-p4ssport 0
針對批處理環境的特殊選項
      -mvhome 將可執行程序移到home路徑下
      -mvback files 將指定的文件移到當前路徑下
      -maxtime min 以分鍾為單位的最大運行時間
      -nopoll 不使用查詢模式進行通信
      -mem value 每個結點需要的內存
      -cpu time 硬件CPU約束時間
針對IBM SP2的特殊選項
-cac name 指定ANL 調度期
針對Intel Paragon的特殊選項
      -paragontype name 選擇遞交作業的方式
      -paragonname name 指定運行作業的遠程shells的名字
      -paragonpn name 在Paragon上運行部分的名字
異構系統上的運行
通過指定多個-arch -np 參數對 可以在不同的結構上協同運行一個MPI程序 比如利用
本地機sun4和另一個機器rs6000同時執行一個程序 在sun4上啟動2個進程 在rs6000上啟動
則啟動命令為
3個進程
    mpirun -arch sun4 -np 2 -arch rs6000 -np 3 program
如果不同機器上的程序名字不同 比如sun4上的程序名字是program.sun4 rs6000上的
機器名字是program.rs6000 則可以用%a代替機器名
    mpirun -arch sun4 -np 2 -arch rs6000 -np 3 program.%a
比如分別存放在
如果執行程序的存放路徑也不相同
/tmp/me/sun4 和 /tmp/me/rs6000下 則啟動命令為
mpirun -arch sun4 -np 2 -arch rs6000 -np 3 /tmp/me/%a/program

其它可執行命令
mpiman
啟動MPI的手冊幫助程序 它提供兩種顯示方式 一種是UNIX的man方式 一種是通過
缺省情況下 mpiman使用xman, 即X窗口系統的手冊幫助瀏覽器來閱
Web的HTML格式
讀各個幫助頁面 其它的開關選項是
      -xmosaic 指定使用xmosaic Web瀏覽器
      -mosaic 指定使用mosaic Web瀏覽器
      -netscape 指定使用netscape Web瀏覽器
      -xman   指定使用X窗口系統的xman手冊瀏覽器
      -man    指定使用man program (比如mpiman -man MPI_Send)
mpireconfig

根據模板文件產生make文件 它可以根據特定MPICH的配置 將模板中的變量替換為
合適的參數形成所需要的make文件
命令格式是
mpireconfig filename
filename 是將要產生的文件名
但是相應的filename.in文件必須是已經存在了的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM