1.linux安裝安裝過程就不多說了。需要注意的是安裝時,如果機群不與外界連網則可以不考慮安全方面的因素而把rsh選為可信賴的服務,注意安裝相應的軟體包;如果還要與外界保持連網,出於安全需要應把ssh選為可信賴的服務。安裝以後,應該保證各節點之間能夠用ssh相互登入。每個節點的sshd都應該能正常提供服務。主機名稱:node1...noden (我所構建的系統n=2)2.建立NFS服務在伺服器節點public目錄下建立mpi目錄,並將其配置成NFS伺服器,在/etc/exports檔案中加入一行:/public/mpi node1(rw) node2(rw)在用戶端節點的/etc/fstab檔案中增加一行:sever :/pubilc/mpi nfs rw , bg , soft 0 0將/public/mpi這個目錄從伺服器節點輸出,並裝載在各用戶端,從而便於在各節點間分發任務3.修改/etc/hosts檔案,將所有節點名稱極其ip地址填入。例如:127.0.0.1 localhost.localdomain localhost192.168.1.1 node1192.168.1.2 node2…………………….每個節點都進行類似的配置。這樣做的目的是使節點之間能夠通過node1 ... noden的名稱相互訪問。你可以通過ping noden 或 ssh noden進行測試。4.修改(或建立)/etc/hosts.equiv檔案將所有你允許訪問本機進行mpi計算的機器名填入,一行一個機器名。這一步是為了使節點對其它的節點放權。例如,我的node1是我用於啟動mpi叢集計算的機器,其他的節點是參與計算者,在node1的/etc/hosts.equiv檔案是這樣的:node1 #給自己放權,這樣在只有一台機器時也可以類比並行計算環境node2.....noden在node2...noden的/etc/hosts.equiv檔案:node1 #對node1放權node2......noden5.修改~/.bash_profile檔案首先決定一個用於啟動叢集計算的使用者名稱,不提倡使用root進行叢集計算。這裡在每個節點上建立新使用者chief,他們的主目錄都是/home/chief,必須採用同樣的密碼,將來的計算程式必須放在相同的路徑上。譬如你的程式為:fpi.f和a.out,則必須把a.out放在同樣的路境內,比如~/mpirun/a.out,每個節點都是如此。 修改~/.bash_profile檔案,主要是加入下列幾行指令碼:export PATH=$PATH:/usr/local/mpich/binexport MPI_USEP4SSPORT=yesexport MPI_P4SSPORT=22export P4_RSHCOMMAND=rsh 或ssh這裡我們預定了將來mpich的運行環境安裝在目錄/usr/local/mpich下面。其餘的三個變數是用來通知mpi運行環境採用rsh(或ssh)來作為遠程shell。linux的運行環境到此就配置完畢了。6.配置rsh 或ssh對於採用rsh來作為遠程shell運行MPI的使用者只要保證在各個節點上都具有相同的使用者,並把這一使用者的密碼設為空白密碼就可以運行了。若採用ssh作為遠程shell則按如下配置:以你設定的用於啟動mpi計算的使用者登入,運行ssh-keygen,這將產生一個私人/公開金鑰組,分別存放在~/.ssh/identity和~/.ssh/identity.pub檔案內。然後進行訪問授權,運行:cp ~/.ssh/identity.pub ~/.ssh/authorized_keyschmod go-rwx ~/.ssh/authorized_keysssh-agent $SHELLssh-add在每個節點重複一遍。試著在某一節點上登入其它節點,ssh noden,則在.ssh/下產生一個known_hosts2檔案,裡面放著訪問該主機的密鑰,把所有密鑰收集起來,在各個節點上作同樣的拷貝。這樣做的目的是使各節點相互之間訪問無需輸入密碼。7.開啟各項必需的服務如果是以根使用者root 登陸系統的則可以用ntsysv命令啟動ntsysv公用程式。ntsysv 公用程式允許使用簡單的菜單介面啟動或關閉各種運行等級的服務。在其中我們選擇開啟rsh ,rlogin,telnet等。也可以關閉一些服務以加快啟動速度如sendmail。如果是使用su命令轉為root使用者的則很可能運行ntsysv並不出現ntsysvs公用程式。此時可以直接去修改/etc/xinetd.d下的rlogin, rsh ,telenet的設定。用vi編輯器開啟xinetd.d:vi /etc/xinetd.d則可看到如下所示的設定檔:關於rsh的設定如下# default: off# description: The rshd server is the server for the rcmd(3) routine and, \# consequently, for the rsh(1) program. The server provides \# remote execution facilities with authentication based on \# privileged port numbers from trusted hosts.service shell{ disable = yes socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rshd}關於rlogin的設定如下# default: off# description: rlogind is the server for the rlogin(1) program. The server \# provides a remote login facility with authentication based on \# privileged port numbers from trusted hosts.service login{ disable = yes socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rlogind}關於telnet的設定如下# default: off# description: The telnet server serves telnet sessions; it uses \# unencrypted username/password pairs for authentication.service telnet{disable = yesflags = REUSEsocket_type = streamwait = nouser = rootserver = /usr/sbin/in.telnetdlog_on_failure += USERID}所有這些服務在安裝完系統之後都是預設為禁用的,要進行修改來開啟這些服務。如要通過修改啟動telenet則就需要改disable = yes為disable = no。對於其他的服務的啟動的修改與之相同。若啟動這些服務則只需要簡單執行:#/etc/rc.d/init.d/xinetd restart或重起電腦就可以使所作的更改生效。C.在伺服器節點編譯、安裝Fortran90編譯器先將Fortran90我用的是Intel的)編譯器拷貝至/tmp下,然後用tar xvfz fortran90.tar.gzj解壓縮。運行./install選擇你所要安裝的類型,如果你的機器是基於IA-32,就選擇1。如果你的機器是基於Itanium(TM)-based system就選擇2。如果要停止安裝,就選擇X。選擇過之後安斷行符號進入下一步,此時會要求你選擇 :1. Intel(R) Fortran Complier for 32-bit Applications,Version 6.0 build 020312Z2. 2.Linux Applicationdebugger for 32-bit Applications,Version 6.0 buid 20020x. Exit按順序選擇1,2 。最後選擇X 完成安裝並退出。在選擇完1之後會要求你看著作權聲明,輸入Accept繼續安裝。預設的安裝路徑為/opt/intel,選擇預設路徑按Enter繼續。選2之後的情形與1相同。如果不註冊可以用90天。D. 在伺服器節點編譯、安裝mpich 1.2.3將mpich 1.2.4:ftp://ftp.mcs.anl.gov/pub/mpi/mpich.tar.gz。拷貝到一個臨時目錄下,放在/tmp下了。用root使用者登入進行編譯安裝。1. 對mpich的安裝進行預先處理:首先,用tar xvfz mpich.tar.gz解壓。產生mpich-1.2.3目錄。切換到mpich-1.2.3目錄。運行預先處理:./configure --prefix=/usr/local/mpi --對應於用rsh進行遠程登入的系統./configure --prefix=/usr/local/mpi -rsh=ssh --對應於用ssh進行遠程登入的系統這裡我們通知編譯系統mpich的安裝位置為/usr/local/mpich,運行環境的遠程shell為rsh或ssh。2.編譯:make運行此命令後mpich軟體包會自動編譯形成MPI系統的函數庫,需要數分鐘的時間,根據不同的機器可以略有不同。3.安裝:make install運行此命令可以將MPI軟體包安裝到由./configure --prefix選項指定MPICH安裝目錄即/usr/local/mpi修改檔案/usr/local/mpi/share/util/machines/machines.LINUX。如下:node1ndoe2......ndoen這一步是通知mpich運行環境都有那些節點可供叢集計算。每個節點都這樣輸入一遍。4.測試安裝是否正確 在/usr/local/mpi/examples/basics下編譯cpi.c: make cpi用命令列:../../bin/mpirun -np 2 cp運行。將會獲得如下資訊。Processes 0 on node1Processes 1 on node2……..………………..如果能正常運行即證明mpich軟體包安裝完全成功。