時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
應(yīng)該說MPICH是一個比較成熟的軟件了,安裝說明已經(jīng)很詳細(xì)。我安裝它的時候就完全是按照其文檔一步一步來做的。
首先,下載安裝包,我使用的MPICH2,對MPICH是兼容的,但是注意MPI2的許多功能在MPI1中是不受支持的,而很多機器裝的仍然是MPI1。
然后,解壓縮,找到README文件,里面有詳細(xì)的安裝說明。強烈建議看一遍。
第三,安裝前的準(zhǔn)備。至少你的系統(tǒng)要有程序編譯器,因為mpich支持c/c++和fortran,因此,至少要一種編譯器,常用的gcc,用來編譯c,編譯c++的是gxx或g++,編譯fortran77的是g77,編譯fortran95的是gfortran,這些我全安裝了。不同系統(tǒng)安裝命令不一樣,如ubuntu是sudo apt-get install gcc,而fedora是yum install gcc,在此不多敘述。
除了編譯器,你還要安裝make和automake,姑且稱其為工程管理器吧。雖然,后面只用到了make,但是沒有automake,make的時候是會報錯的。
然后就是python,版本至少是2.2以上。linux中一般是已經(jīng)預(yù)裝了的。
第四,配置。命令行下進(jìn)入當(dāng)前目錄,即cd currentDIR,然后,運行./configure。
這個耗時比較多,最后如果沒有提示錯誤信息,就說明配置成功。如果有,那就對癥下藥,一般的問題是某個軟件沒有安裝。配置的時候,可以有選項,如--prefix,這是指定安裝目錄的,如果不指定就會默認(rèn)安裝到系統(tǒng)目錄,用管理員帳號安裝即可。
第五,編譯。命令make。這個耗時仍然很長,而且可以聽到硬盤轉(zhuǎn)動的聲音,沒辦法,編譯安裝軟件就是這個樣子。不過,除了心痛電腦之外,我倒覺得挺有感覺的。同樣,如果沒有錯誤,就可以進(jìn)行下一步了。
第六,安裝。命令是make install。安裝不出錯,就算OK了。
第七,最后一步,在用戶主目錄下新建一個文件.mpd.conf,然后加入一句SECRETWORD=pkuwwt,等號后面的字符串任意寫就好了。這是為運行mpd服務(wù)的,可能與安全性有關(guān),其權(quán)限應(yīng)該設(shè)置成-rw-------,即600,命令是chmod 600 .mpd.conf。
實際上,如果不進(jìn)行這一步,運行mpd的時候也會提示你的。
下面測試一下,是否安裝成功,運行這樣幾個命令,mpd,mpirun,mpicc...,如果沒有特別的錯誤,那就是安裝成功了。
第八,現(xiàn)在講一下mpd。mpd是mpi的后臺程序,因此運行的時候要用mpd &,運行一次就夠了。這是運行其它mpi命令的前提。實際上,對于個人電腦來說,仍然屬于串行計算機,但mpich會模擬一個并行環(huán)境,即用多進(jìn)程分時來模擬并行。
第九,現(xiàn)在可以嘗試編寫第一個mpi程序了。將下面的代碼保存到helloWorld.c中:
/*第一個mpich程序"HELLO WORLD" */
#include "mpi.h"
#include
#include
int main(int argc,char* argv[]){
int myid, numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc,&argv);/* 初始化并行環(huán)境 */
MPI_Comm_rank(MPI_COMM_WORLD,&myid);/* 當(dāng)前進(jìn)程的ID號 */
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);/* 進(jìn)程的總數(shù) */
MPI_Get_processor_name(processor_name,&namelen);/* 當(dāng)前處理器的名稱 */
fprintf(stderr,"Hello World! Process %d of %d on %s\n",
myid, numprocs, processor_name);
MPI_Finalize();/* 結(jié)束并行環(huán)境 */
return 0;
}
接下來編譯并運行:
mpd &
mpicc helloWorld.c -o helloWorld
mpirun -np 4 ./helloWorld
其中,mpd是前面講過的后臺程序,如果啟動過就不用再啟動了。mpicc專用來編譯c程序,其它有對應(yīng)的mpicxx,mpif77,mpif90。mpirun是運行命令,-np表示有幾個處理器,也就是說進(jìn)程數(shù)需要提前指定。
在程序中,
1)頭文件mpi.h是針對c語言的,fortran是mpif.h。
?。玻㎝PI_Init和MPI_Finalize是必須調(diào)用的兩個函數(shù),任何其它mpi函數(shù)都必須在兩者中間,有一個例外,是查詢當(dāng)前是否已經(jīng)進(jìn)入并行狀態(tài)MPI_Initialized。最好不要在MPI_Finalize后面寫什么代碼,可能會出現(xiàn)意想不到的錯誤。
?。常┰谝粋€程序中MPI_Init和MPI_Finaiize這兩個函數(shù)只需要在主程序中調(diào)用一次,中間的子程序可以調(diào)用其它mpi函數(shù)而不需要初始化。
?。矗〤語言中的命名規(guī)則:常數(shù)全大寫,MPI和后面的第一個字母大寫,其余小寫。
關(guān)鍵詞標(biāo)簽:linux
相關(guān)閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內(nèi)存型號 linux tc實現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機、重啟、注銷 命令 查看linux服務(wù)器硬盤IO讀寫負(fù)載