PGI fortran でコンパイルしインストールする.
システム全体で使えるように PGI fortran に対してパスを通す(ログインノード, 計算ノード両方必要)
# vi /etc/profile.d/pgi.sh export PATH=$PGI/linux86-64/2012/bin:$PATH export MANPATH=$MANPATH:$PGI/linux86-64/2012/man export LM_LICENSE_FILE=$PGI/license.dat
MPI まわりのインストール先にもパスを通す
# vi /etc/profile.d/mpich.sh export PATH=/work00/mpich2/bin:$PATH
<URL:http://www.mpich.org> より, 最新版 mpich を取得する(最新版は mpich-3.0.3 (2013/04/04 現在))
$ wget http://www.mpich.org/static/tarballs/3.0.3.tar.gz $ tar zxvf mpich-3.0.3.tar.gz $ cd mpich-3.0.3/
コンパイルオプションの付け方は, PGI fortranのサポートページ <URL:http://www.softek.co.jp/SPG/Pgi/TIPS/public/general/mpich2_install2.html>を参照. 但し, OSC mpiexec を後でインストールするので --with-device オプションは指定しない
$ export CC=pgcc FC=pgfortran F77=pgfortran CXX=pgcpp CFLAGS=-fast \ FCFLAGS=-fast FFLAGS=-fast CXXFLAGS=-fast MPICH2LIB_LDFLAGS=-pgf90libs $ ./configure --enable-shared --prefix=/work00/mpich2 $ make $ sudo -s # export PGI=/work00/pgi # export PATH=$PGI/linux86-64/2012/bin:$PATH # make install
ソフテックの解説ページ <URL:http://www.softek.co.jp/SPG/Pgi/TIPS/public/general/mpich2_install2.html>に記載されているテストプログラムを作成し, 実行してみる.
Fortran プログラム(single 実行)
$ mpif90 mpihello.f $ ./a.out Hello - I am process 0 host hikari Hello world! I'm node
C プログラム(single 実行)
$ mpicc myname.c PGC-W-0156-Type not specified, 'int' assumed (myname.c: 3) PGC/x86-64 Linux 11.10-0: compilation completed with warnings $ ./a.out My name is hikari
ジョブスケジューラ pbs (torque はそのフリー版) を使う場合 Hydra mpiexec (mpich のデフォルト) と OSC mpiexec がある. Hydra mpiexec は各ユーザが計算ノードに nopass login できないといけないようなので OSC mpiexec を使う
参考:<URL:http://www.mpich.org/static/docs/guides/mpich2-1.5-userguide.pdf>, <URL:http://www.clusterresources.com/torquedocs21/7.1mpi.shtml>
ジョブスケジューラ torque のライブラリだけインストール(torque のライブラリがないと OSC mpiexec がインストールできない)
# apt-get install libtorque2 libtorque2-dev
デフォルトのリンクを消す
# rm /work00/mpich2/bin/mpiexec
OSC mpiexec のページから OSC mpiexec の最新版(最新版は mpiexec-0.84(2013/04/04 現在))を取得する
$ wget https://www.osc.edu/~djohnson/mpiexec-0.84.tgz $ tar zxvf mpiexec-0.84.tgz $ cd mpiexec-0.84 $ export CC=gcc $ ./configure --with-default-comm=mpich2-pmi --prefix=/work00/mpich2 $ make $ sudo -s # make install