Knowledge Base/Linux

mpich2 컴파일 옵션(mpd, smpd, gforker)

Woos™ 2009. 8. 31. 17:37

http://hydra.nac.uci.edu/~sev/docs/mpich2-readme.txt


http://blog.neosgen.net/54


Alternative Process Managers
============================

mpd
---
MPD is the default process manager.  Its setup and use have been
described above.  The file mpich2-1.0.1/src/pm/mpd/README has more
information about interactive commands for managing the ring of mpds.

smpd
----
SMPD is a process management system for both Microsoft Windows and UNIX.
SMPD is capable of starting a job where some processes are running on
Windows and others are running on a variant of UNIX.  For more
information, please see mpich2-1.0.1/src/pm/smpd/README.

gforker
-------
gforker is a process manager that creates processes on a single machine,
by having mpiexec directly fork and exec them.  This mechanism is
particularly appropriate for shared-memory multiprocessors (SMPs) where
you want to create all the processes on the same machine.  gforker is
also useful for debugging, where running all the processes on a single
machine is often convenient.

########################################################################################

앞서 설정한 컬러스터링 시스템에 Sun Grid Engine 를 Queueing 시스템으로 사용하였습니다. 이제 Queueing System 에서 MPI 방식의 프로그램을 돌리기 위해서 MPICH2 를 설치하고 둘을 연동시켜 보겠습니다.

MPICH2 를 설치하는 방식은 2개지가 있습니다. 첫번재는 네트웍을 통하지 않고 여러개의 Core를 가지는 한대의 컴퓨터에서 돌아가게 하는 방식과 smpd 를 이용해서 네트웍으로 다른 컴퓨터와 연결하는 방법이 있습니다. 각각의 장단 점이 있으므로, 자신에게 맞는 방법으로 설치하시면 됩니다.

여기서는 2가지 종류의 컴파일러를 사용해서 각 컴파일당 2개의 종류를 가지게 되어서 총 4가지 경우로 설치가 이루어집니다. 설치하실 분들은 자신에게 알맞는 것을 사용하시면 됩니다.

Intel compiler + MPICH (gforker)
export CC=icc
export CXX=icpc
export FC=ifort
export F90=ifort
export F77=ifort
make distclean
./configure --prefix=/opt/mpich2/gforker.intel --with-pm=gforker
make && make install

Intel compiler + MPICH (smpd)
export CC=icc
export CXX=icpc
export FC=ifort
export F90=ifort
export F77=ifort
make distclean
./configure --prefix=/opt/mpich2/smpd.intel --with-pm=smpd --with-pmi=smpd
make && make install

GCC + MPICH (gforker)

export CC=gcc
export CXX=g++
export FC=gfortran
export F90=gfortran
export F77=gfortran
make distclean
./configure --prefix=/opt/mpich2/gforker.gcc --with-pm=gforker
make && make install

GCC + MPICH (smpd)
export CC=gcc
export CXX=g++
export FC=gfortran
export F90=gfortran
export F77=gfortran
make distclean
./configure --prefix=/opt/mpich2/smpd.gcc --with-pm=smpd --with-pmi=smpd
make && make install