機械学習力場によるMD計算を実行できる統合環境 DeePMD-kit をUbuntuのDockerで動かせるようにします。
Dockerの準備
一番簡単なインストール方法は、公式が配布しているdockerのイメージを使用する方法です。
dockerのインストール方法はこちらで解説しています。
Dockerでpull
DeePMD-kitの公式で案内されている方法は以下の通りです。
Install with docker
A docker for installing the DeePMD-kit is available here.To pull the CPU version:
docker pull ghcr.io/deepmodeling/deepmd-kit:2.1.1_cpuTo pull the GPU version:
docker pull ghcr.io/deepmodeling/deepmd-kit:2.1.1_cuda11.6_gpuTo pull the ROCm version:
deepmd-kit/doc/install/easy-install.md at master · deepmodeling/deepmd-kit · GitHub
docker pull deepmodeling/dpmdkit-rocm:dp2.0.3-rocm4.5.2-tf2.6-lmp29Sep2021
このように、CPU版、GPU版、ROCm版があります
ROCmとはAMD版のCUDAのことです。
計算用GPUといえばNVIDIAですが、AMDも計算用GPUの開発に力を入れています。
さて、私の環境にはパワーのあるGPUがないのでCPU版を使います。
2023年12月時点でCPU版の最新は2.2.7_cpuなのでそれをpullします。
dockerが使える状態のUbuntuで以下のコマンドを実行します。
$ docker pull ghcr.io/deepmodeling/deepmd-kit:2.2.7_cpu
2.2.7_cpu: Pulling from deepmodeling/deepmd-kit
7a2c55901189: Pull complete
438160a90d62: Pull complete
5e7003ad4db0: Pull complete
870bf2621e66: Pull complete
8fdcf87b37a9: Pull complete
7f8f82dd7a0b: Pull complete
Digest: sha256:bf14bcf4d3128bb9bfe4d6f447a7be6df2d1d5f16d4182a054fefbdbe4fb0003
Status: Downloaded newer image for ghcr.io/deepmodeling/deepmd-kit:2.2.7_cpu
ghcr.io/deepmodeling/deepmd-kit:2.2.7_cpu
こんな感じでダウンロードが始まって、しばらくすると全てPull completeになります。
なおこのUbuntuではsudoなしでdockerが動くようになっています。sudoが要る場合はsudoを付けます。
Dockerの操作
ここでは以下のコマンドを使用します。
- docker images
- docker ps -a
- docker run -it –name NAME ImageID bash
- docker start NAME
- docker exec -it NAME bash
- docker cp ./filename NAME:/root/ または docker cp NAME:/root/filename ./
dockerイメージを確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ghcr.io/deepmodeling/deepmd-kit 2.2.7_cpu 308d4307adb9 6 weeks ago 2.87GB
deepmd-kitが入っていますね。OKです。
次にコンテナを確認しましょう。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
何もないです。DeePMD-kitはまだ動いていません。
ではdeepmdという名前のdockerコンテナを作ってbashに入ってみましょう。
$ docker run -it --name deepmd 308d4307adb9 bash
(base) root@9eeb306c61d6:/# hostname
9eeb306c61d6
(base) root@9eeb306c61d6:/# whoami
root
(base) root@9eeb306c61d6:/# exit
exit
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9eeb306c61d6 308d4307adb9 "tini -- /bin/bash" 5 minutes ago Up 4 minutes deepmd
dockerコンテナの中ではホスト名やユーザ名も変わっています。
またexitするとdeepmdコンテナはExitedステータスになっています。つまり止まっています。
実際にDeePMD-kitを使う場合は、これを起動して出たり入ったりすることになると思います。
ここからがよく使うコマンドになると思います。
startでdockerコンテナを起動します。そしてbashに入ります。
(ここでは入った後にすぐ出ています)
$ docker start deepmd
deepmd
$ docker exec -it deepmd bash
(base) root@9eeb306c61d6:/# exit
exit
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9eeb306c61d6 308d4307adb9 "tini -- bash" 5 minutes ago Up 52 seconds deepmd
DeePMD-kitで何かをやる場合は、docker exec -it deepmd bashでbashに入って操作をすることになります。
最後にファイルの受け渡しです。dockerコンテナの中と外は別の世界なので、コピーコマンドでファイルを動かす必要があります。
$ docker cp aaa.dat deepmd:/root/
Successfully copied 2.05kB to deepmd:/root/
指定の仕方は普通のcpコマンドと同様ですが、複数ファイルを指定できないと思います。
ファイルが複数ある場合はディレクトリごとコピーしましょう。
DeePMD-kitの確認
最後に、このdockerコンテナの中でDeePMD-kitが動くことを確認します。
コマンド dp –versionと dp –helpを実行します。
(base) root@9eeb306c61d6:/# dp --version
DeePMD-kit v2.2.7
(base) root@9eeb306c61d6:/# dp --help
usage: dp [-h] [--version] {transfer,train,freeze,test,compress,doc-train-input,model-devi,convert-from,neighbor-stat,train-nvnmd,gui} ...
DeePMD-kit: A deep learning package for many-body potential energy representation and molecular dynamics
options:
-h, --help show this help message and exit
--version show program's version number and exit
Valid subcommands:
{transfer,train,freeze,test,compress,doc-train-input,model-devi,convert-from,neighbor-stat,train-nvnmd,gui}
transfer pass parameters to another model
train train a model
freeze freeze the model
test test the model
compress compress a model
doc-train-input print the documentation (in rst format) of input training parameters.
model-devi calculate model deviation
convert-from convert lower model version to supported version
neighbor-stat Calculate neighbor statistics
train-nvnmd train nvnmd model
gui Serve DP-GUI.
動いた!ヨシ!
実際に使ってみた
Quantum ESPRESSOのpw.xによる第一原理MD計算の結果を使ってDeePMD-kitによるポテンシャル作成とMD計算をやってみました。以下の記事で解説しています。
コメント
大変参考になりました。
deepmdで無機材料の力場作成を行いたいのですが、教師データの作成方法をご存知でしたらご教授頂けると幸いです。
コメントありがとうございます。調べてもなかなか出てこないから困りますよね。以前に少しだけ動かしたことがあり、時間ができたら検証しながら記事にしようと思っていました。次の記事はDeepMDにしようと思いますので、もうしばらくお待ちください。
教師データ作成の記事ができました。完全に理解しているわけではなく「とりあえずこれで動いた」というレベルの内容ですが、ご参考になれば幸いです。 https://tech.gijukatsu.com/qe_pwmd_deepmdkit_part1/
詳細な方法を教えて頂き、Prat1からPart3までトレースしてみましたところ、最後まで出来ました。
ASEを変換に使うというのは便利と思いました。
ありがとうございました。
色々、ご質問したいことがございます。
宜しければ、メールを頂けますと幸いです。
お役に立てたようで良かったです。
恐れ入りますが、メールでのご質問は受け付けておりません。コメントで質問や記事のリクエストを書いていただくことは可能ですので、コメントでお願いいたします。
承知致しました。
コメント欄にてご質問させて頂こうと思います。
今後ともよろしくお願い致します。