1. 程式人生 > >Linux 下搭建MPI並行開發環境

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

  1. ./configure --enable-fc --enable-cxx --enable-romio --enable-threads=multiple --prefix=${HOME}/soft/mpich2/3.0.4 --with-pm=mpd  
  2. make  
  3. make install 

四:

             1) 設定環境變數

                   由於我安裝到了非標準目錄下,所以要設定下環境變數。

                   我用的是bash shell,編輯~/.bashrc

                   在檔案的末尾,新增如下幾行

  1. export PATH=${HOME}/soft/mpich2/3.0.4/bin:${PATH}  
  2. export LD_LIBRARY_PATH=${HOME}/soft/mpich2/3.0.4/lib:${LD_LIBRARY_PATH}  
  3. 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