1. 目的
- Pythonベースの密度汎関数法ソルバのひとつであるGPAWをUbuntu17.10にインストールしました.
- GPAWはpipでのインストールも提供してくれているのですが,私の環境では並列計算がうまくいかなかったため,記事化してみました.
2. 方法
- 今回は依存ライブラリをインストールした後にコンパイルする手法を取りました.
- GPAWのドキュメンテーションに記載はあるので(Link),本記事はその補助になれば良いかと思います.
2.1. 依存ライブラリのインストール
以下のライブラリをインストールします.(該当GPAWドキュメンテーション(Link))
‐ aptでインストール:BLAS, LAPACK, BLACS, Scalapack, OpenMPI
- pipでインストール:numpy, scipy, ase
- ソースからコンパイル:LibXC
LibXCのみソースファイルからコンパイルを行いました.
詳細はGPAWドキュメンテーション(Link)参照ですが,
①LibXCのサイトから圧縮ファイルをダウンロード(Link)
②tarで解凍し,コンパイル実行(Link)
でうまくいきました.
コンパイルで規定のフォルダ以外にライブラリ作成した場合は環境変数の設定が必要になります(今回はLibXCにてLD_LIBRARY_PATHを追加する必要あり).
2.2. GPAWのコンパイル
ドキュメンテーションには複数の方法が列挙されているのですが,並列版のインストールはgit cloneでレポジトリをダウンロード→コンパイル→環境変数設定の手順でうまくいきました.
①gitによるダウンロード
git clone https://gitlab.com/gpaw/gpaw.git
②customize.pyの変更
customize.py
...
Scalapack = True
...
# - dynamic linking (requires rpath or setting LD_LIBRARY_PATH at runtime):
if 1:
...
③Developer Installation(Link)に従ってsetup.pyを実行
python3 setup.py build_ext
④環境変数を追加すれば,並列版のgpawコマンド(gpaw-python)が実行可能となります.
a1. GPAWについて
- GPAWはASE, Atomic Simulation Environmentとネイティブに連携が取れる点が非常に良いと思います.原子操作‐エネルギー計算‐ポスト処理をPythonで一括に回せるので,他のPythonライブラリと繋げて…などいろいろ面白そうな計算ができます.