n2p2はBehler-Parrinelloニューラルネットワークポテンシャルを構築するためのプログラムです (Behlerによるオリジナルのコードに関してはこちらのページを参照して下さい)。
以下に私の所属するグループで使用しているクラスターシステム上でのn2p2の導入の手順をまとめました。
環境
- クラスターシステム
- smith (Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz)
Linux smith2 3.10.0-1127.18.2.el7.x86_64 #1 SMP Sun Jul 26 15:27:06 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
- モジュール
- intel/2020.2.254
- intelmpi/2020.2.254
- python/3.8
- cmake/3.18.3
準備
必要なライブラリは~/local以下にインストールするものとし、ソースファイルは~/local/srcでダウンロード・コンパイルすることにします。
Eigenのインストール
~/local/src
で以下を実行
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz
tar zxvf eigen-3.4.0.tar.gz; cd eigen-3.4.0
~/local/include/eigen3
というディレクトリを作製し、以下を実行します。
ディレクトリ名は任意ですが、n2p2
をコンパイルするときに正しいパスをmakefileの中で指定する必要があります。
mkdir -p ~/local/include/eigen3
コンパイルは不要なのでEigen
というディレクトリをコピーします。
cp -r Eigen ~/local/include/eigen3
GSLのインストール
Eigenと同様、~/local/src
で以下を実行:
wget ftp://ftp.gnu.org/gnu/gsl/gsl-latest.tar.gz
tar zxvf gsl-latest.tar.gz
cd gsl-2.7.1
ソースディレクトリで以下を実行してGSLをコンパイル、インストールします。
./configure --prefix=$(HOME)/local
make
make check
make install
n2p2のコンパイル
n2p2のソースディレクトリを適当に作製し、n2p2のgithubページからソースコードをダウンロードします
git clone https://github.com/CompPhysVienna/n2p2.git
n2p2/src
に移動してmakefileを編集します。
ここではintelコンパイラを使用することにし、makefile.intel
を編集します。
GSLとEigenへのパスを指定
PROJECT_GSL=${HOME}/local/
PROJECT_EIGEN=${HOME}/local/include/eigen3
コンパイラオプションは以下を指定しておきます(オリジナルの-xHost
を外しています)。
PROJECT_CFLAGS=-O3 -std=c++11 -ipo
makeの実行
make all COMP=intel
エラーが起きなければn2p2/bin
以下になどの実行ファイル (nnp-*
) がインストールされます。