本帖最后由 Acee 于 2022-6-7 15:27 编辑
基于docker的CP2K v10.0安装演示(官方教程搬运)
1. 前言
学生最近在学习周期性晶体分子的计算,通过本论坛和其他渠道了解到第一性原理的开源软件cp2k在计算这类体系上比较适用。同时也了解到cp2k安装难的问题。
庆幸的是官方发布了基于docker的CP2K安装方法(此安装方法也适用于以前的cp2k版本,例如v9.1)。故在此转发一下。具体流程如下文所示: “划重点:网上有很多其他的号称简易安装的方法,请大家一定擦亮双眼!!!本教程搬运至官方,一步一步来,绝对是最简单,最方便的,完全免费的方法(引用官方的话:The easiest way to build CP2K with all of its dependencies as a Docker container)。”当前安装的是psmp版本:MPI+OpenMP混合并行,可以单机并行也可以跨节点并行(sob老师的博文中有具体介绍:http://sobereva.com/586)
2. 安装方法
2.1. docker安装
官方给的docker安装教程为: - https://docs.docker.com/get-docker/
复制代码docker的安装过程也可以参照菜鸟教程中给的方法链接如下: - https://www.runoob.com/docker/ubuntu-docker-install.html
复制代码 docker安装完成过后,离cp2k的使用又近一步了!!
2.2. 基于官方教程的安装复现
2.2.1. 进入github页面
上一节在linux系统上安装了docker,现在我们来到用docker安装cp2k的github页面。 - https://github.com/cp2k/cp2k/tree/master/tools/docker
复制代码 在这里可以看到cp2k/tools/docker目录下面的Dockerfile(可以看到官方6天前上传的Dockerfile.prod.psmp文件)和对应的官方给的输入命令。先下载cp2k到本地文件夹 2.2.2. 下载cp2k源代码到本地 - git clone --recursive https://github.com/cp2k/cp2k.git cp2k #下载最新版本的cp2k
复制代码- git clone --recursive -b support/vx.y https://github.com/cp2k/cp2k.git cp2k #下载指定版本的cp2k, versionx.y,例如v9.1就是9.1版本
复制代码运行完如上代码后,我们就可以看到当前文件夹下,有了cp2k的源代码。大概200多MB。 然后进入cp2k/tools/docker 2.2.3. 进入docker文件夹 2.2.4. 安装cp2k 然后依次运行如下命令: - docker build -f Dockerfile.prod_psmp --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) -t cp2k_prod_psmp ../../
复制代码 这一步会等很长时间,我这边大概是等了1~2个小时。2.2.5. 测试 - cd ../../benchmarks/QS_single_node
复制代码 进入benchmarks下的QS单节点文件夹中- docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=2 -np 16 cp2k dbcsr.inp
复制代码 通过docker run 运行dbcsr.inp成功,并计算结束后会有如下内容打印出来:
"The number of warnings for this run is : 0"
然后我测试了一个自己的任务,基于DZVP-MOLOPT-SR-GTH基组,使用GTH-PBE赝势对二硫化钨周期性晶体的XY方向进行单点能计算 - docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=2 -np 16 cp2k WS2.inp 1>WS2.out 2>WS2.err
复制代码 一分钟不到就计算结束,同时可以通过top看见cp2k运行时的进程数目。可以用Multiwfn进行波函数分析啦,此处注意生成的molden文件,要把其中的核电子数改为价电子数。也就是核电子数减去被赝势赝掉的电子数目。
2.3. 测试结果
如test_results图所示,16个线程,17分钟测试完毕
3. 总结
学生是用cp2k做第一性原理计算的新手,以上内容有不足之处,还望各位老师不吝指点。
|