單機配置:(只在node4節點下)
wget
執行以下命令解壓
tar xzf mpich-3.3.tar.gz
建立mpi的安裝路徑,使用/home/[username]/mpi資料夾來存放安裝檔案
mkdir /home/***x/mpi
進入解壓後的mpich-3.3檔案
cd mpich-3.3
指定安裝資料夾
./configure --prefix=/home/***x/mpi --disable-fortran
構建make檔案並執行makefile進行安裝
make && make install
配置.bashrc
vi ~/.bashrc
寫入:
export mpi_root=/home/***x/mpi
export path=$mpi_root/bin:$path
(export path=/home/***x/mpi/bin:$path)
source一下
source .bashrc
測試mpihello.c
#include #include #include int main (int argc, char **argv)
編譯:mpicc -o mpihello mpihello.c
(如果c++使用mpicxx)
執行:./mpihello
結果:
hello world! process 0 of 1 on node4
使用mpirun執行:mpirun -np 4 ./mpihello
結果:
hello world! process 0 of 4 on node4
hello world! process 1 of 4 on node4
hello world! process 2 of 4 on node4
hello world! process 3 of 4 on node4
集群環境:
node4
node5
集群配置:(在node4和node5兩個節點組成的集群環境下)
提前配置好ssh免密登陸,使上述節點可以通過ssh直接訪問。
將已經安裝好的mpi從node複製到其他節點。
scp -r /home/***x/mpi ***x@node5:/home/***x/
成功複製之後進入node5
ssh node5
在這個node5節點也修改環境變數(在所有節點上都要設定),同上
配置.bashrc
vi ~/.bashrc
寫入:
export mpi_root=/home/***x/mpi
export path=$mpi_root/bin:$path
source一下
source .bashrc
編寫servers檔案(servers只需要放在執行程式的主節點就可以)
node4:2 #執行2個程序
node5:2 #執行2個程序
之後就可以執行試一下。
測試mpihello.c(執行程式必須同時存在兩個節點上並且目錄必須一致)
#include #include #include int main (int argc, char **argv)
編譯命令:mpicc -o mpihello mpihello.c
執行命令:mpirun -n 4 -f ~/servers ./mpihello
執行結果:
hello world! process 3 of 4 on node5
hello world! process 0 of 4 on node4
hello world! process 1 of 4 on node4
hello world! process 2 of 4 on node5
附加問題:
關於servers檔案的解釋
編寫servers檔案(servers只需要放在執行程式的主節點就可以)
node4:2 #執行2個程序
node5:2 #執行2個程序
這裡:(冒號)後邊數字意思應該是cpu核數,比如上邊設定為2,在後邊的mpirun命令中如果要建立4個程序,就會在node4上先建立2個程序,然後再在node5上建立2個程序;如果設定為1,mpirun要建立4個程序,就會在node4上先建立1個程序,然後再在node5上建立1個程序,然後再在node4上建立1個程序,最後在node5上建立1個程序,從而完成四個程序的建立;如果設定2,mpirun要建立2個程序,那這兩個程序都會建立在node4上。
例項一:
node4:2
node5:2
mpirun -n 4
例項二:
node4:1
node5:1
mpirun -n 4
例項三:
node4:2
node5:2
mpirun -n 2
使用mpich搭建MPI集群
使用mpich搭建mpi集群 wget 2.解壓 tar xzf mpich 3.3.tar.gz 3.建立mpi的安裝路徑 home omnisky xy mpi 4.進入解壓後檔案 cd mpich 3.3 5.指定安裝資料夾 configure prefix home omnisky xy m...
MPI集群環境搭建
我在前面兩篇部落格中簡要介紹了為什麼要平行計算以及mpi的一些學習心得,接下來我們正式開始mpi的學習之路。我們知道mpi是分布式記憶體程式設計,所以這篇部落格會詳細講解mpi集群環境的搭建過程。選擇linux版本 這裡我選擇的是ubuntu14.04,其他linux版本如centos fedora...
MPI集群搭建指南
由於有時需要使用到mpi集群來進行迭代運算,就嘗試著自己去搭建著mpi集群。不過這也是到去年工作的事情了。我現在憑我的記憶去把它回憶出來。從零開始,搭建mpi集群是一件很費周折的事情。mpi是一種程式設計模型,業界有很多種實現,其中開源版本就有好幾個版本。對比過openfabrics公司提供的ofe...