LoginSignup
17
17

More than 1 year has passed since last update.

AMBER20とAmberTools20,21のインストール方法

Last updated at Posted at 2017-12-17

※最新のAMBER22のインストール法はこちら

環境

  • macOS 11.3 (Big Sur), 2.3GHz Intel Core i7, メモリ16GB
  • Xcode 12.5
  • ターミナルからHomebrewをインストールしてある
  • ターミナルからxcode-select --installでCommand Line Toolsをインストールしてある

Note

2020年4月30日にAMBER20とAmberTools20がリリースされました( http://ambermd.org/GetAmber.php)。さらに、2021年4月30日にAmberTools21がリリースされました。近年はAMBER本体が偶数年に2年ごと、AmberToolsは1年ごとにメジャーアップデートしています。今年はAmberToolsのみのアップデートの年です。解凍したときのディレクトリがともにamber20_srcとなっていますがこれは仕様です。

Amber20, AmberTools21からはcmakeを使ったインストール方法に切り替わりました。以前の./configureを使うインストール方法もまだ使用可能ですが、いずれ廃止すると宣言されています。

公式のCMakeを使ったインストール方法は http://ambermd.org/pmwiki/pmwiki.php/Main/CMake-Quick-Start に書かれています。CMakeのオプション一覧は http://ambermd.org/pmwiki/pmwiki.php/Main/CMake-Common-Options を確認してください。

macOS Intel CPUの場合

こちらはAppleが開発した最新のM1チップ入りではない多くのMacの場合です。M1 Macの場合は別方法になるので後述です。 はじめにHomebrewをインストールしておきますが、boostが入っているとコンパイルエラーが生じてしまうようです。これを回避するためには、インストールを始める前に

brew unlink boost

として一時的にHomebrewのboostとの連携を外しておきます。AMBER/AmberToolsのインストールが終わったら再びbrew link boostで戻しておきましょう。

新しいcmakeを使ったインストール方法を利用することで、今までserial, parallel, openMP, cuda版をそれぞれ毎回configure処理する必要があったのが不要になったようです。

以下インストール手順です。

# macOSのHomebrewで必要なソフトウェアをインストールしておく。
brew install cmake gcc wget open-mpi

gfortranのバージョンを確認します。

$ gfortran-11 --version
GNU Fortran (Homebrew GCC 11.1.0) 11.1.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

確認したら、以下のコマンドを実行します。

# Homebrewのgfortran-11をgfortranとしてシンボリックリンクを貼っておく必要がある。
ln -sf /usr/local/bin/gfortran-11 /usr/local/bin/gfortran # M1 Macでない場合
# ダウンロードしてきたソースコードをtar jxvfで解凍する
tar jxvf AmberTools21.tar.bz2 ; tar jxvf Amber20.tar.bz2
cd amber20_src
# updateを実行する
./update_amber --update
# cmake用のbuildディレクトリに入る
cd build
###############################
# ここが最重要の設定。-DCMAKE_INSTALL_PREFIXにインストール先ディレクトリを指定する
# 下の例はホームディレクトリ以下のapps/amber20にインストールする設定。
# MPIはONにする。COMPILERはCLANGを指定する。
###############################
AMBER_PREFIX=$(dirname $(dirname `pwd`))
cmake $AMBER_PREFIX/amber20_src \
    -DCMAKE_INSTALL_PREFIX=${HOME}/apps/amber20 \
    -DCOMPILER=CLANG -DBLA_VENDOR=Apple \
    -DMPI=TRUE -DBUILD_GUI=FALSE -DCUDA=FALSE -DINSTALL_TESTS=TRUE \
    -DDOWNLOAD_MINICONDA=TRUE -DMINICONDA_USE_PY3=TRUE 2>&1 | tee cmake.log
# Configureが正常終了していることを確認したらmakeとインストールを実行する
make -j8 && make install

cmakeの終わり頃には結果一覧が表示されますので、適切な値になっているか確認してみましょう。

--                                Features:
-- MPI:                     ON
-- OpenMP:                  OFF
-- CUDA:                    OFF
-- Build Shared Libraries:  ON
-- Build GUI Interfaces:    OFF
-- Build Python Programs:   ON
--  -Python Interpreter:    Internal Miniconda (version 3.8)
-- Build Perl Programs:     ON
-- Build configuration:     RELEASE
-- Target Processor:        x86_64
-- Build Documentation:     OFF
-- Sander Variants:         normal LES API LES-API MPI LES-MPI
-- Install location:        /Users/YoshitakaM/apps/amber20/
-- Installation of Tests:   ON

上の例は正しくMPI設定がON, GUI設定がOFFになっていることがわかります。これはcmake時に-DMPI=TRUE -DBUILD_GUI=FALSEにした設定と対応しています。

コンパイラ設定も確認してみます。

--                               Compilers:
--         C: AppleClang 12.0.0.12000032 (/usr/bin/clang)
--       CXX: AppleClang 12.0.0.12000032 (/usr/bin/clang++)
--   Fortran: GNU 10.2.0 (/usr/local/bin/gfortran)

AmberTools21ではAppleClangとHomebrewでインストールしたOpenMPIによる並列化処理が問題なく行われるようになっています。ただし、FortranだけはAppleClangにないので、これはbrew install gccで外部からインストールする必要がありました。

インストールが終わったら、AMBERのプログラムコマンドをいつでも使えるようにするために、~/.bash_profileecho $SHELLと打ってみて最後がbashの場合)または~/.zshrcecho $SHELLと打ってみて最後がzshの場合。macOS Catalinaを使っているヒトはzshがデフォルトになっているはず)のどちらかのファイルに(なければ作成する)、以下のように書き込みます。

# for AMBER 20 / AmberTools21
test -f ${HOME}/apps/amber20/amber.sh && source ${HOME}/apps/amber20/amber.sh

これでターミナルの起動時にAMBER20とAmberTools21のコマンドがいつでも使えるようになっているはずです。ターミナルを再起動してみたときにecho $AMBERHOMEと打ってみてAMBERをインストールしたパス(/Users/username/apps/amber20みたいな感じ)が表示されれば成功です。

brew unlink boostしておいた場合はbrew link boostで設定をもとに戻しておきましょう。

macOS M1 Macの場合

かなり難しいですが、一応入れることができるみたいです。以下の方法です。

brew install boost gcc

gccは10.2のものを使いました。5月10日頃から配信されたgccはVer.11になっていますが、こちらではまだ試していません。boostはこちらではHomebrewのものを入れておいても動作します。

cmake時のオプションは以下のようにすると動きました。

ln -sf /opt/homebrew/bin/gcc-11 /opt/homebrew/bin/gcc
ln -sf /opt/homebrew/bin/g++-11 /opt/homebrew/bin/g++
ln -sf /opt/homebrew/bin/gfortran-11 /opt/homebrew/bin/gfortran

AMBER_PREFIX=$(dirname $(dirname `pwd`))
cmake $AMBER_PREFIX/amber20_src \
  -DCMAKE_INSTALL_PREFIX=${HOME}/apps/amber20 \
  -DCOMPILER=GNU -DBLA_VENDOR=Apple \
  -DCMAKE_CXX_FLAGS=-fcommon -DCMAKE_C_FLAGS=-fcommon -DCMAKE_Fortran_FLAGS='-fallow-argument-mismatch -fallow-invalid-boz -frecursive' -DMPI=FALSE -DBUILD_GUI=FALSE -DCUDA=FALSE -DINSTALL_TESTS=TRUE -DDISABLE_TOOLS="moft" \
  -DDOWNLOAD_MINICONDA=TRUE -DMINICONDA_USE_PY3=TRUE 2>&1 | tee cmake.log

MPI連携とMOFTの利用をOFFにしていますが、これでmakeを行えば一応インストールができました。

CentOS 7の場合

インストール前に初期に必要なパッケージはCMake 3.8以上のみとかなり少なくなったようで

yum -y install epel-release
yum -y install tcsh make cmake3 \
               gcc gcc-gfortran gcc-c++ \
               which flex bison patch bc \
               libXt-devel libXext-devel \
               perl perl-ExtUtils-MakeMaker util-linux wget \
               bzip2 bzip2-devel zlib-devel tar

でインストールできます(要検証)。あとは、cmake時のコマンドをcmake -> cmake3に置き換えればインストール可能です。

デフォルトではGNU Compilerのバージョンが4.8.5とかなり古いものになっていますので、変更したい場合は手動で10.3.0などを入れましょう。また、OpenMPIも利用したい場合はGCC 10.3.0をインストール後にOpenMPIを手動でインストールしましょう。以下は/usr/local/package/gcc/10.3.0にインストールする一例です

gccver="10.3.0"
openmpiver="4.1.1"
installdir="/usr/local/package"
### GCC 10.3.0
wget https://ftp.gnu.org/gnu/gcc/gcc-${gccver}/gcc-${gccver}.tar.xz
tar Jxvf gcc-${gccver}.tar.xz
cd gcc-${gccver}
./contrib/download_prerequisites
./configure --with-system-zlib --disable-multilib --disable-bootstrap --enable-languages=c,c++,fortran --prefix=${installdir}/gcc/${gccver}
make -j16 && make install
### GCC 10.3.0を一時的に優先使用する設定
export PATH="${installdir}/gcc/${gccver}/bin:${PATH}"
export LD_LIBRARY_PATH="${installdir}/gcc/${gccver}/lib:${installdir}/gcc/${gccver}/lib64:${LD_LIBRARY_PATH}"
export LIBRARY_PATH="${installdir}/gcc/${gccver}/lib:${LIBRARY_PATH}"
export CPATH="${installdir}/gcc/${gccver}/include:${CPATH}"
export FPATH="${installdir}/gcc/${gccver}/include:${FPATH}"
### OpenMPI 4.1.1 for GCC 10.3.0
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-${openmpiver}.tar.bz2
tar jxvf openmpi-${openmpiver}.tar.bz2
cd openmpi-${openmpiver}
./configure --prefix=${installdir}/openmpi/${openmpiver}_gcc${gccver} CC=gcc CXX=g++ FC=gfortran --with-cuda=/usr/local/cuda-11.1
make -j16 all
make install
### OpenMPI 4.1.1を一時的に優先使用する設定
MPIROOT=${installdir}/openmpi/${openmpiver}_gcc${gccver}
export PATH=$MPIROOT/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MPIROOT/lib
export MANPATH=$MANPATH:$MPIROOT/share/man

こののち、amber20のインストールをはじめます

AMBER_PREFIX=$(dirname $(dirname `pwd`))
cmake3 $AMBER_PREFIX/amber20_src \
    -DCMAKE_INSTALL_PREFIX=/usr/local/package/amber20 \
    -DCOMPILER=GNU -DMPI=TRUE -DOPENMP=TRUE -DBUILD_GUI=FALSE -DCUDA=TRUE \
	-DBUILD_QUICK=TRUE -DINSTALL_TESTS=TRUE \
    -DDOWNLOAD_MINICONDA=TRUE -DMINICONDA_USE_PY3=TRUE 2>&1 | tee cmake.log

インストール先は/usr/local/package/amber20にしています。LinuxでNVIDIA製GPUを積んでおりCUDAをインストール済みの場合は-DCUDA=TRUEとします。またOpenMPIの恩恵を受けるために-DMPI=TRUE, OpenMPによるスレッド並列化をONにするために-DOPENMP=TRUEにしています。
AmberTools21で実装されたQM/MMシミュレーションソフトウェアのQUICKをインストールしたい場合は-DBUILD_QUICK=TRUEとします(デフォルトではインストールされません)。これをONにするとインストールにとても時間がかかることになる(30分くらいかかる)ので気をつけてください。

あとは同様に make -j16 && make installをします。

96%あたりでなんか長く止まります。

[ 96%] Linking Fortran executable sander.LES.MPI
[ 96%] Built target sander.LES.MPI

Ubuntu 20.04の場合

aptで依存パッケージを入れます。

sudo apt -y update
sudo apt -y install tcsh make cmake gcc gfortran flex bison patch bc xorg-dev libbz2-dev wget

その後はCentOS 7の場合とほぼ同じです。

17
17
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17