搭建 MPICH3 並行計算環境


先記錄在單機MacBook上的搭建,實驗室集群的搭建流程是一樣的,不過每台機器都需要做一次。

 

MacBook:

1、安裝mpich3:

$ ./configure --prefix=/Users/xin/sftwr/mpich3 --disable-fortran
$ make
$ make install


2、修改環境變量
打開/etc/bashrc
輸入:
export MPI=/Users/xin/sftwr/mpich3
export PATH=${PATH}:${MPI}/bin


3、測試是否正確安裝
查看命令是否是我們安裝目錄下的命令

重啟終端,輸入:
$ which mpiexec


4、用主機名表示ip地址
打開 /etc/hosts,定義 ip 地址和主機名之間的對應關系:
添加:
127.0.0.1         node0

 

note: 每個主機中都需要添加所有主機的ip,並賦予每個ip相同的名字 (相當於主機名字是主機ip的別名). 主機之間要設置免密碼登錄,從而才能登錄到其它主機運行 mpiexec 進程

5、創建machinefile文件
在 ~/conf/目錄中創建文件
輸入:
node0

 

note: 每台主機需要相同的machinefile文件,文件中的名字可以用ip代替


6、測試:計算圓周率
mpiexec -n 3 -machinefile ~/conf/machinefile /Users/xin/sftwr/mpich3-source/examples/cpi

 

測試結果:
Process 0 of 3 is on xindeMacBook-Pro.local
Process 1 of 3 is on xindeMacBook-Pro.local
Process 2 of 3 is on xindeMacBook-Pro.local
pi is approximately 3.1415926544231318, Error is 0.0000000008333387
wall clock time = 0.004443

 

7、安裝mpi4py

$ sudo python setup.py install

 

裝好Python MPI后,使用dir()函數查看所有的MPI通信函數

from mpi4py import MPI
comm = MPI.COMM_WORLD
dir(comm)
help(comm.Allreduce)
help(comm.allreduce)

 

實驗室集群

過程基本沒有差別,區別只在於hosts文件中需要記錄更多的ip地址(以及主機名,可以任意賦予一個名字)

集群一共8台服務器:

30格子: computer-10 ip地址: 10.1.1.10, 20.1.1.10
28格子: computer-11 ip地址: 10.1.1.11, 20.1.1.11
26格子: computer-12 ip地址: 10.1.1.12, 20.1.1.12
24格子: computer-13 ip地址: 10.1.1.13, 20.1.1.13
22格子: computer-14 ip地址: 10.1.1.14, 20.1.1.14
20格子: computer-15 ip地址: 10.1.1.15, 20.1.1.15
18格子: computer-16 ip地址: 10.1.1.16, 20.1.1.16
16格子: computer-17 ip地址: 10.1.1.17, 20.1.1.17

其中四台服務器上安裝了虛擬機:

實體服務器computer-10 上安裝了4台虛擬機:10.1.1.50;10.1.1.51;10.1.1.52;10.1.1.53;
實體服務器computer-11 上安裝了4台虛擬機:10.1.1.60;10.1.1.61;10.1.1.62;10.1.1.63;
實體服務器computer-12 上安裝了4台虛擬機:10.1.1.70;10.1.1.71;10.1.1.72;10.1.1.73;
實體服務器computer-13 上安裝了4台虛擬機:10.1.1.80;10.1.1.81;10.1.1.82;10.1.1.83;

 

盡量只在虛擬機上操作,所以hosts文件的內容是:

10.1.1.50 node0
10.1.1.51 node1
10.1.1.52 node2
10.1.1.53 node3
10.1.1.60 node4
10.1.1.61 node5
10.1.1.62 node6
10.1.1.63 node7
10.1.1.70 node8
10.1.1.71 node9
10.1.1.72 node10
10.1.1.73 node11
10.1.1.80 node12
10.1.1.81 node13
10.1.1.82 node14
10.1.1.83 node15

 

 

其它問題:

mpich3的更多的命令參數可參看官網文檔:http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-userguide.pdf。

在所有的服務器上運行的mpi版本必須一致,否則也會出錯。

有時有些問題是由於防火牆導致的,在運行mpi程序時,我們可以關掉防火牆:

 關閉防火牆

#service iptables stop

 查看防火牆狀態

#service iptables status

 


免責聲明!

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



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