※最新の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_profile
(echo $SHELL
と打ってみて最後がbash
の場合)または~/.zshrc
(echo $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の場合とほぼ同じです。