MPICH 學習筆記

1. OpenMP or MPI?
從wiki上看,在集羣上MPI比OpenMP更成熟,高效。
MPI: http://en.wikipedia.org/wiki/Message_Passing_Interface
Pros and Cons of MPI & OpenMP:
  http://en.wikipedia.org/wiki/Comparison_of_MPI,_OpenMP,_and_Stream_Processing

2.  MPICH or OpenMPI?
OpenMPI在共享內存的管理上更優,但是比商業的MPi似乎都要差一點。不過MPICH2應該會有很大的進步
MPICH vs OpenMPI: http://www.beowulf.org/archive/2008-April/021188.html

3. Installation of MPICH in Ubuntu
a) 安裝之前要有f77, f90, c, c++的編譯器 (gfortran, gcc, g++)
b) 不建議使用Synaptic package Manager安裝,建議下載源代碼手動編譯安裝
c) 按照readme裏面的步驟安裝,在步驟4時,因爲Ubuntu的文件管理和MPICH不同,最好專門建立一個文件夾
        sudo mkdir /usr/bin/mpich_install_folder (make sure mpich_install_folder !=mpich)
           chown –R user_name mpich_install_folder
 
d) 步驟7,在.bashrc上添加上PATH=/usr/bin/mpich_install_folder/bin:$PATH ; export PATH
現在單機上應該可以使用MPICH了,可以通過mpd &; mpdtrace -l測試
e) 步驟9,10可以參照
http://lwg2001s.javaeye.com/blog/278945
http://cid-4205cd3f0a115bcc.spaces.live.com/Blog/cns!4205CD3F0A115BCC!438.entry
http://hi.baidu.com/sobereva/blog/item/acd600c6d518bc1c9c163d5c.html
在~下面建立.mpd.conf和mpd.hosts,check /etc/hosts and /etc/hostname
如果有127.0.1.1的話,改機器名或者註釋掉
f) 在另外幾臺機器上重複a)到e),安裝路徑和secretword最好都一樣
g) mpdboot –n 2,有問題的話,參看安裝手冊附錄A
installer’s guider: http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.2.1-installguide.pdf

4. 使用nfs共享簡化設置
按照以上辦法設置的帳號具有root權限,而且無需輸入密碼,可能會帶來一系列安全問題。Omid Alemi 通過設置nfs共享來解決這一問題。
Omid Alemi: https://wiki.ubuntu.com/MpichCluster
a) 指定一臺機器爲master,在上面安裝nfs (nfs-kernal-server), 在根目錄下創建一個mpi專用文件夾 (/mpi)。爲了安全起見,共享時最好指定機器或者ip範圍。(/mpi ub0(rw,sync,no_root_squash)  ub1...), 重啓nfs server (sudo /etc/init.d/nfs-kernel-server restart)
Setting up /etc/exports: http://nfs.sourceforge.net/nfs-howto/ar01s03.html
b) 在/mpi下面安裝mpich。生成.mpd.conf和mpd.hosts文件
c) 生成一個桌面用戶 (mpiu), 指定該用戶的~文件夾爲/mpi,爲了所有的機器都有相同的uid和gid,最好修改到1020以後,修改/mpi的擁有者爲mpiu。
change uid and gid: http://www.cyberciti.biz/faq/howto-change-rename-user-name-id/
d) 安裝ssh,切換到mpiu,生成密鑰。把mpich的bin目錄添加到.bashrc
e) 測試mpich在本機上是否工作
f) 在其他機器上創建mpiu,指定~目錄,修改uid和gid,安裝ssh
g) mounting /mpi in all nodes: sudo mount ub0:/mpi /mpi
h) 測試mpich在多臺電腦的工作情況 (cpi)

5. mpi2test的問題
官方網站提供的測試包mpi2test直接configure不通過,指定編譯器後卡在f2cwin

./configure --with-mpi CC=gcc MPICC=mpicc F77=gfortran MPIF77=mpif77 CXX=g++ /
                       MPICXX=mpicxx F90=gfortran MPIF90=mpif90 --disable-spawn /
               --enable-strictmpi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章