Linux下mpi環(huán)境配置與執(zhí)行步驟(Ubuntu為例)
以兩臺(tái)計(jì)算機(jī)為例,將這兩臺(tái)計(jì)算機(jī)應(yīng)用于MPI運(yùn)行環(huán)境。
第一步:在兩臺(tái)機(jī)器上安裝Linux 操作系統(tǒng)
我安裝的是ubuntu 12.04,主機(jī)名隨便你自己取,我命名兩臺(tái)機(jī)器為sinco和cosin。
第二步:為兩臺(tái)機(jī)器設(shè)置固定的IP
當(dāng)然,我這里假設(shè)兩臺(tái)機(jī)器屬于同一個(gè)局域網(wǎng)中。
我設(shè)置sinco的IP為192.168.0.2
??????????? cosin的IP為192.168.0.3
第三步:設(shè)置通過主機(jī)名登錄(需要ROOT)
編輯sinco上的/etc/hosts 文件,文件的前幾行修改成如下形式
127.0.0.1?????localhost 192.168.0.2???sinco 192.168.0.3???cosin
編輯cosin上的/etc/hosts 文件,文件的前幾行也他哦功能樣修改成如上形式
第四步:設(shè)置無密碼登錄
我默認(rèn)兩臺(tái)機(jī)器上已經(jīng)安裝了ssh服務(wù)器,如果不能ssh登錄,安裝一下ssh就行了。別忘了安裝就行。
在sinco上,你的用戶目錄下進(jìn)入 .ssh 目錄,如果沒有這個(gè)目錄,就先創(chuàng)建他,進(jìn)入之后,執(zhí)行下面的命令:
執(zhí)行:
ssh-keygen?-t?dsa
在.ssh目錄下會(huì)產(chǎn)生兩個(gè)文件,id_dsa? id_dsa.pub。
執(zhí)行:
?cat?id_dsa.pub?>>?authorized_keys
把id_dsa.pub和authorized_keys一起拷貝到cosin機(jī)器上的.ssh目錄下,如果你也想從cosin機(jī)器上無需密碼登錄回sinco機(jī)器上,只要將id_dsa一起拷貝到cosin的.ssh目錄下就行了。
實(shí)驗(yàn)一下前四步是否成功,在sinco上執(zhí)行ssh cosin,如果沒有密碼就登錄上去了,說明成功了。如果不行,你就需要在看看是不是做錯(cuò)哪個(gè)步驟了。
第五步:編譯和安裝MPICH
我用的版本是MPICH-3.0.4 , 下載后,解壓,安裝配置如下:
./configure?--enable-fc?--enable-cxx?--enable-romio?--enable-threads=multiple?--prefix=${HOME}/soft/mpich2/3.0.4?--with-pm=mpd make make?install
兩臺(tái)機(jī)器都要這樣安裝MPICH
第六步:設(shè)置環(huán)境變量
由于我安裝到了非標(biāo)準(zhǔn)目錄下,所以要設(shè)置下環(huán)境變量。
我用的是bash shell,編輯~/.bashrc
在文件的末尾,添加如下幾行
export?PATH=${HOME}/soft/mpich2/3.0.4/bin:${PATH} export?LD_LIBRARY_PATH=${HOME}/soft/mpich2/3.0.4/lib:${LD_LIBRARY_PATH} export?MANPATH=${HOME}/soft/mpich2/3.0.4/share/man:${MANPATH}
兩臺(tái)機(jī)器的.bashrc都要這樣設(shè)置
第七步:設(shè)置進(jìn)程管理器
我用的是mpd,這一點(diǎn)在mpich編譯的時(shí)候就指定了。
在兩臺(tái)機(jī)器上,編輯${HOME}/mpd.hosts
添加如下兩行:
sinco:4 cosin:4
4指的是CPU的個(gè)數(shù),我假設(shè)兩臺(tái)機(jī)器都有四個(gè)CPU。
在兩臺(tái)機(jī)器上編輯${HOME}/.mpd.conf文件,添加一行:
MPD_SECRETWORD=mypasswd
第八步:?jiǎn)?dòng)與測(cè)試進(jìn)程管理器
我在sinco啟動(dòng)進(jìn)程管理器,
mpdboot?-n?2
-n 2 指定啟動(dòng)兩個(gè)節(jié)點(diǎn)。
測(cè)試一下:
mpdtrace
如果輸出兩個(gè)主機(jī)名,說明測(cè)試成功。
測(cè)試下mpiexec
mpiexec?-n?2?ls?-l
看下輸出結(jié)果是否正確。
第九步:執(zhí)行自己的MPI程序
我現(xiàn)在用的機(jī)器是兩臺(tái)獨(dú)立的機(jī)器,他們沒有共享硬盤空間,所以,我只能從一個(gè)機(jī)器拷貝到另一個(gè)機(jī)器執(zhí)行程序,例如我在$HOME目錄下有個(gè)mpi01.exe,想讓他在兩個(gè)機(jī)器上運(yùn)行下。可以這樣做。
將這個(gè)程序拷貝到另一個(gè)機(jī)器上的$HOME目錄下。
然后執(zhí)行:
mpiexec?-wdir?$HOME?-n?2?./mpi01.exe