Linux 下搭建MPI並行開發環境
步驟是混合了網上的上些文章,最終已經實現了執行~~
一:
1) 安裝openssh-client 和openssh-server
$ sudo apt-get install openssh-client openssh-server
2)配置rsh-server, 下面的操作必須以root 身份執行。
– 編輯檔案/etc/hosts.equiv, 在其中加上本機主機名(單獨佔一行)。如果該檔案不存在則建立一個。
二:
1) 設定無密碼登入
$ ssh-keygen -t dsa #中間提示輸入密碼,直接回車,會在生成檔案~/.ssh/id_dsa.pub
cd切入.ssh目錄
$ cat id_dsa.pub >> authorized_keys
三:
1) 安裝MPICH-3.0.4
tar xzpvf mpich-1.x.x.tar.gz
cd mpich-1.x.x
- ./configure --enable-fc --enable-cxx --enable-romio --enable-threads=multiple --prefix=${HOME}/soft/mpich2/3.0.4 --with-pm=mpd
- make
- make install
四:
1) 設定環境變數
由於我安裝到了非標準目錄下,所以要設定下環境變數。
我用的是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}
vim ~/.mpd.conf ,檔案內容:MPD_SECRETWORD=123456
vim ~/.mpd.hosts,檔案內容:localhost
五:
1) 測試安裝
$ vim hello.c
鍵入以下內容到hello.c
#include <mpi.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
int npes, myrank;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &npes);
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
printf("From process %d out of %d, Hello World!\n", myrank, npes);
MPI_Finalize();
}
$ mpicc -o hello hello.c
$ mpirun -np 2 hello #應該會輸出兩次Hello