CentOS マシンに AMBER12 のインストールを行ったので手順をまとめておきます。
なお詳細な情報が http://jswails.wikidot.com/installing-amber12-and-ambertools-12 (ただし英語)にまとまっています。
原因は不明ですが CentOS 6.2 マシンではコンパイル途中にエラーが出てうまくいきませんでしたので、CentOS 5.4 マシンで以下のコンパイルを実行しました。(コンパイル済みバイナリは CentOS 6.2 マシンで問題なく動作しました)
また intel fortran および OpenMPI がインストールされ、パスが通っていることを前提とします。
which mpirun which ifort which icc
でパスが表示されなければ、インストールされていない、あるいはパスが通っていないことになります。
今回使用したコンパイラのバージョンは intel fortran 10.1(やや古い), OpenMPI 1.6.2 です。
まず圧縮ファイルとして配布されている AMBER12 および AmberTools(AMBER12.tar.bz2, AmberTools.tar.bz2)を入手します。
AMBER12 は有償のソフトウェアですので、購入する必要があります。(大学・研究所・企業等はサイトライセンス契約をしていることもあります)
AmberTools はフリーで配布されています。(http://ambermd.org/#AmberTools)
入手した圧縮ファイル AMBER12.tar.bz2, AmberTools.tar.bz2 をCentOSマシンの任意のディレクトリにコピーします。(ここでは /home/user/amber ディレクトリにコピーし、AMBER12 を /home/user/amber/amber12 にインストールします)
まず環境変数としてAMBERHOMEの設定を .cshrc または .bashrc に追加します。
# .cshrcの場合 vi ~/.cshrc # 以下を追記 setenv AMBERHOME /home/user/amber/amber12 set path=($AMBERHOME/bin $path) csh # .cshrc に追記した内容を反映させる # .bashrcの場合 vi ~/.bashrc # 以下を追記 export AMBERHOME=/home/user/amber/amber12 PATH="$AMBERHOME/bin:$PATH" bash # .bashrc に追記した内容を反映させる
圧縮ファイルを解凍した後、 /home/user/amber/amber12 ディレクトリに移動する。
cd /home/user/amber bzip2 -dc Amber12.tar.bz2 | tar xvf - bzip2 -dc AmberTools12.tar.bz2 | tar xvf - cd $AMBERHOME
bug fix を適用する。
# bug fix 内容の表示 ./patch_amber.py --check-updates --verbose # bug fix の適用、ただし1度の実行では完了しない場合があり、 # "Amber12 is up to date. Nothing to download"が表示されるまで繰り返す ./patch_amber.py --update-tree
serial版(シングルコア版)のコンパイル実行。
# 可能な設定の表示 ./configure # intel fortranを使用する (intel fortranが無く、GNUコンパイラを使うなら ./configure gnu) ./configure intel # インストール実行(-jにより複数コアを使って並列コンパイルをしてくれる) make install -j # インストール結果のテスト 全てPASSEDならOK(1時間程度かかる) make test.serial
これで $AMBERHOME/bin 内に sander, pmemd 等のプログラムがコンパイルされていれば成功です。
parallel版(並列計算版)のコンパイル実行。(いろいろ試したが GNU 版はコンパイルできなかった)
./configure -mpi intel vi config.h # openmpi-1.3 使用時はこれらオプションでエラーになったので削除 # openmpi-1.6.2 でコンパイル時は削除する必要無し "-ip"、"-axSTPW"、"-lsvml"、"-ipo" を削除する make install -j
/home/user/amber/amber12/bin 内に sander.MPI, pmemd.MPI 等の並列化されたプログラムがコンパイルされていれば成功です。
MD計算実行は serial 版であれば
sander -O -p prmtop -c out.crd pmemd -O -p prmtop -c out.crd
parallel 版であれば
mpirun -np 8 sander.MPI -O -p prmtop -c out.crd mpirun -np 8 pmemd.MPI -O -p prmtop -c out.crd
のように実行可能です。
簡単なベンチマークとして約45000原子の周期境界系の計算を行い、AMBER12 sander, pmemd, AMBER9 pmemd を比較しました。
実行マシンは Xeon E3-1270 3.4GHz 4 core です。
AMBER12 sander 1 core 90.25秒 4 core 27.89 AMBER12 pmemd 1 core 57.53 4 core 18.94 AMBER9 pmemd 1 core 63.06 4 core 19.69 (参考:Gnuコンパイラ版、AMBER12 pmemd 1 core 63.07)
マニュアル等にもあるように、シンプルなMD計算実行であれば pmemd の方がかなりパフォーマンスが良いです。
また AMBER9 と比べると数%性能向上しています。
コンパイラの違いも数%効いています。