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環境中的機器
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 用於測試