経路積分第一原理分子動力学法ソフトウエアのPIMDを使って、機械学習分子シミュレーションをやってみることにします。
PIMDとAENETを使って機械学習分子シミュレーションをやってみよう
ではVirtual Boxを使ったやり方について書きましたが、ここではDockerを使ってやってみることにします。前回の記事と違うのは
- Dockerを使うのでPIMDとaenetとQEがすでにインストール済み。いきなり実行できる。
- 簡単なチュートリアルを書いてみた(第一原理MDと機械学習MD)
- 自己学習ハイブリッドモンテカルロ法のチュートリアルも書いてみた
です。
はじめに。PIMDとは
PIMDはその名前からわかりますように、経路積分法を用いることで量子効果を取り入れた分子動力学計算ができます。
例えば、水素は軽いために量子振動が大きく、量子効果が大きいことが知られています。
したがって、水素の含まれる物質の計算では、第一原理計算を用いた分子動力学法である第一原理分子動力学では足りず、
実際の物質の振る舞いとシミュレーションがずれることが起きるかもしれません。
というわけで、PIMDは経路積分第一原理分子動力学を行うことができるソフトとして知られているのですが、実は経路積分を使わない通常の第一原理計算ソフトとしても様々なことができます。
その例として、PIMDの最新版において実装された機械学習分子動力学をやってみることにしましょう。
使うソフトウェア
-
PIMD
オープンソースの経路積分第一原理分子動力学法ソフトウエア。 https://ccse.jaea.go.jp/software/PIMD/index.jp.html -
AENET (The Atomic Energy Network)
http://ann.atomistic.net aenetは、原子の配置をインプット、第一原理計算によって計算された系のエネルギーをアウトプットとして、エネルギーを模倣するようなニューラルネットワークを作成するオープンソースソフトウェアです。 -
QuantumESPRESSO https://www.quantum-espresso.org 第一原理計算ソフトウエア。フリーで利用することができる。
-
Docker
Dokcerを使うと、MacやWindowsやLinuxにおいて仮想的に別のOSを走らせることができます。また、パッケージが整備されたイメージを使うことで、インストール作業なしにいきなりそのパッケージを使用することができます。
今回はPIMD+QE+aenetが入ったイメージを作成しましたので、そちらを使うことになります。
動作確認環境
- M1 Mac
- Intel Mac
環境整備:Dockerのインストール
まず、Dockerをインストールしてください。Dockerは色々なサイトにインストール方法がありますので、適当に調べて入れてみてください。
Macであれば、こちらからインストールができます。
PIMD+QE+aenetのイメージの取得
次に、PIMD+QE+aenetのイメージを取得します。
docker pull cometscome/pimd_aenet_qe
で取得できます。
説明はこちらです。
あるいは、自前でDockerfileからビルドしたい方は、
https://github.com/cometscome/PIMD_with_QE_aenet_Docker
のものを使ってください。
このイメージでは、2021年のIntelのOneAPIに含まれたFortranとMKLとMPIを利用してPIMDとQEとaenetをコンパイルしています。
2023/9/12 追記
PIMDの最新バージョンが2.6.0となりましたので、2.6.0が動くDockerイメージを作成しました。コンパイラはOneAPI 2023となっています。これを使うには、
docker pull cometscome/pimd_aenet_qe:pimd_2_6_0
としてください。Dockerfileはこちらです。
2.5.2 (OneAPI 2022を使用)が使いたい場合には、
docker pull cometscome/pimd_aenet_qe:pimd_2_5_2
です。Dockerfileはこちらです。
2024/8/22 追記
OSをUbuntu 22.04に、PIMDを最新バージョンを2.6.1にし、Intel OneAPIを2024としたDokcerイメージを作成しました。
これを使うには、
docker pull cometscome/pimd_aenet_qe:pimd_2_6_1
としてください。
今回は、pimdに追加されたcmakeによるコンパイルを用いています。Dockerfileはこちらです。なお、cmakeを使うと、
cmake -DQE=on -DQEVERSION=6.3 -DAENET=on -DMKL=on .
のような簡単な感じでQEもaenetもコンパイルしてくれてリンクしてくれます。
実行のテスト
次に、Dockerで走らせてみます。
docker run --shm-size=2gb --rm -it cometscome/pimd_aenet_qe
を実行します。もし、M1 Macの場合には、
docker run --shm-size=2gb --platform=linux/amd64 --rm -it cometscome/pimd_aenet_qe
としてプラットフォームを指定しましょう。ただし、M1 Macでintelのコンパイラでコンパイルしたやつを動かすとどうにも遅いようですので、gfortranでコンパイルしたものを使ったほうがいいかもしれません(無事イメージができたらどこかからpullできるようにするかもしれません)
Quantum EspressoによるMDのテスト
第一原理分子動力学ですね。これは、
cd pimd/examples/SiO2/qe_md/
mpirun -np 2 pimd.mpi.x
をすると、SiO2の個体に対して第一原理MDを行います。この例では2並列で動きます。
aenetによるMDのテスト
機械学習分子動力学ですね。これは、
cd ~/pimd/examples/SiO2/aenet_pimd_nvt/
mpirun -np 2 pimd.mpi.x
で実行可能です。これはすでに学習済みのニューラルネットワークを使用します。
QE+aenetの自己学習ハイブリッドモンテカルロ法(SLHMC)のテスト
これは、
cd ~/pimd/examples/SiO2/qe_slhmc
mpirun -np 2 pimd.mpi.x
で実行可能です。こちらはSiO2のニューラルネットワークをSLHMC法でどんどん改善していきます。
SLHMCはディープラーニングと物理学オンラインの講演スライドや
論文を参考にしてください。
PIMDでのMDの実行の仕方については、追記するか別の機会にもう少し詳しく記述してみたいと思います。
もう少し興味のある方は、PIMDのマニュアルは
https://ccse.jaea.go.jp/software/PIMD/doc/manual/manual.html
にありますので、こちらを見てみてください。