Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
15
Help us understand the problem. What is going on with this article?
@Ag_smith

AMBERとAmberToolsのインストール方法

環境

  • 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-10 --version
GNU Fortran (Homebrew GCC 10.2.0_4) 10.2.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-10をgfortranとしてシンボリックリンクを貼っておく必要がある。
ln -sf /usr/local/bin/gfortran-10 /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/opt/gcc/bin/gcc-10 /opt/homebrew/opt/gcc/bin/gcc
ln -sf /opt/homebrew/opt/gcc/bin/g++-10 /opt/homebrew/opt/gcc/bin/g++
ln -sf /opt/homebrew/opt/gcc/bin/gfortran-10 /opt/homebrew/opt/gcc/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 cmake3

でインストールできます(要検証)。あとは、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
15
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
15
Help us understand the problem. What is going on with this article?