読者です 読者をやめる 読者になる 読者になる

生物物理計算化学者の雛

主に科学に関する諸々を書き留めています。

CentOSへのAMBER12のインストール手順

分子シミュレーション

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 と比べると数%性能向上しています。
コンパイラの違いも数%効いています。