计算化学公社

标题: 基于官方docker的CP2K 10.0版本安装演示 [打印本页]

作者
Author:
Acee    时间: 2022-5-18 17:58
标题: 基于官方docker的CP2K 10.0版本安装演示
本帖最后由 Acee 于 2023-3-4 16:16 编辑

基于docker的CP2K安装演示(官方教程搬运)


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安装教程为:
  1. https://docs.docker.com/get-docker/
复制代码
docker的安装过程也可以参照菜鸟教程中给的方法链接如下:
  1. https://www.runoob.com/docker/ubuntu-docker-install.html
复制代码
docker安装完成过后,离cp2k的使用又近一步了!!


2.2. 基于官方教程的安装复现


2.2.1. 进入github页面
上一节在linux系统上安装了docker,现在我们来到用docker安装cp2k的github页面。
  1. https://github.com/cp2k/cp2k/tree/master/tools/docker
复制代码
在这里可以看到cp2k/tools/docker目录下面的Dockerfile(可以看到官方6天前上传的Dockerfile.prod.psmp文件)和对应的官方给的输入命令。
先下载cp2k到本地文件夹
2.2.2. 下载cp2k源代码到本地
  1. git clone --recursive https://github.com/cp2k/cp2k.git cp2k #下载最新版本的cp2k
复制代码
  1. 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文件夹
  1. cd cp2k/tools/docker
复制代码
2.2.4. 安装cp2k
然后依次运行如下命令:
  1. docker build -f Dockerfile.prod_psmp --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) -t cp2k_prod_psmp ../../
复制代码
这一步会等很长时间,我这边大概是等了1~2个小时。
2.2.5. 测试
  1. cd ../../benchmarks/QS_single_node
复制代码
进入benchmarks下的QS单节点文件夹中
  1. docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=1 -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方向进行单点能计算
  1. docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=1 -np 16 cp2k WS2.inp 1>WS2.out 2>WS2.err
复制代码
一分钟不到就计算结束,同时可以通过top看见cp2k运行时的进程数目。可以用Multiwfn进行波函数分析啦,此处注意生成的molden文件,要把其中的核电子数改为价电子数。也就是核电子数减去被赝势赝掉的电子数目。

2.3. 测试结果

如test_results图所示,16个线程,17分钟测试完毕

3. 总结


学生是用cp2k做第一性原理计算的新手,以上内容有不足之处,还望各位老师不吝指点。




作者
Author:
abin    时间: 2022-5-18 18:07
本帖最后由 abin 于 2022-5-18 18:44 编辑

docker pull 岂不是更佳?
https://blog.csdn.net/hpc4you/article/details/124419142

作者
Author:
Acee    时间: 2022-5-18 18:12
本帖最后由 Acee 于 2022-5-19 09:24 编辑
abin 发表于 2022-5-18 18:07
docker pull 岂不是更佳?



作者
Author:
Acee    时间: 2022-5-19 09:35
本人为方便大家阅读,对帖子的内容做了些许修改
作者
Author:
ChemG    时间: 2022-5-31 10:49
似乎正式版还没出,CP2K v10.0有啥更新不
作者
Author:
nianbin    时间: 2022-6-11 10:50
输入CP2K还是显示命令找不到应该咋整呢?
输入这一串是可以的docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=2 -np 16 cp2k
作者
Author:
876449830    时间: 2022-6-11 11:06
docker是不支持centos的嘛?
作者
Author:
flyingchow    时间: 2022-6-11 12:23
在超算上弄没有root,还是singularity更加方便。
作者
Author:
Acee    时间: 2022-6-11 13:52
nianbin 发表于 2022-6-11 10:50
输入CP2K还是显示命令找不到应该咋整呢?
输入这一串是可以的docker run --shm-size=1g -ti -v "$(pwd)":/ ...

找不到是正常的。调用docker安装的cp2k需要用这样的命令
docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=2 -np 16 cp2k xxx.inp 1>xxx.out 2>xxx.err (通过np指定并行的线程数目)

作者
Author:
Acee    时间: 2022-6-11 13:54
876449830 发表于 2022-6-11 11:06
docker是不支持centos的嘛?

https://docs.docker.com/desktop/linux/install/
这个网站可以查到docker支持的平台。
支持Ubuntu,Debian和Fedora
作者
Author:
876449830    时间: 2022-6-11 14:24
Acee 发表于 2022-6-11 13:54
https://docs.docker.com/desktop/linux/install/
这个网站可以查到docker支持的平台。
支持Ubuntu,De ...

谢谢回复!看了一下,好像是没有centos。
作者
Author:
gog    时间: 2022-6-11 16:22
ChemG 发表于 2022-5-31 10:49
似乎正式版还没出,CP2K v10.0有啥更新不

等等吧。9.1用着也挺好的。再说编译吧,也不用全部功能包都编译好。自己需要的模块能用够用就可以。
作者
Author:
gog    时间: 2022-6-11 16:25
abin 发表于 2022-5-18 18:07
docker pull 岂不是更佳?
https://blog.csdn.net/hpc4you/article/details/124419142

高,实在是高!docker代码太长太长了。
作者
Author:
nianbin    时间: 2022-6-11 16:35
Acee 发表于 2022-6-11 13:52
找不到是正常的。调用docker安装的cp2k需要用这样的命令
docker run --shm-size=1g -ti -v "$(pwd)":/mn ...

那这样的cp2k我想联用gmx的话是不是没戏?

作者
Author:
guoguoping199    时间: 2022-6-26 23:09
在2.2.4这一步卡住了,报了一堆代码
作者
Author:
gog    时间: 2022-6-27 08:22
guoguoping199 发表于 2022-6-26 23:09
在2.2.4这一步卡住了,报了一堆代码

诶,Linux系统和软件确实很难玩弄
作者
Author:
abin    时间: 2022-6-27 09:01
guoguoping199 发表于 2022-6-26 23:09
在2.2.4这一步卡住了,报了一堆代码

用我修改的下载即用的版本试试。
签名中有链接。
作者
Author:
Acee    时间: 2022-6-27 13:05
本帖最后由 Acee 于 2022-7-7 12:49 编辑
guoguoping199 发表于 2022-6-26 23:09
在2.2.4这一步卡住了,报了一堆代码



作者
Author:
Acee    时间: 2022-7-1 16:03
本帖最后由 Acee 于 2022-7-7 12:48 编辑
guoguoping199 发表于 2022-6-26 23:09
在2.2.4这一步卡住了,报了一堆代码



作者
Author:
Acee    时间: 2022-7-7 09:19
guoguoping199 发表于 2022-6-26 23:09
在2.2.4这一步卡住了,报了一堆代码

贴上来看一下
作者
Author:
guoguoping199    时间: 2022-7-7 09:58
Acee 发表于 2022-7-7 09:19
贴上来看一下

==================== Finding GCC from system paths ====================
path to gcc is  /usr/bin/gcc
path to g++ is  /usr/bin/g++
path to gfortran is  /usr/bin/gfortran
Found include directory /usr/include
Found lib directory /usr/lib64
Step gcc took 0.00 seconds.
==================== Getting proc arch info using OpenBLAS tools ====================
ERROR: (/home/sob/cp2k-8.1/tools/toolchain/scripts/get_openblas_arch.sh) failed to download https://www.cp2k.org/static/downloads/OpenBLAS-0.3.10.tar.gz
ERROR: (/home/sob/cp2k-8.1/tools/toolchain/scripts/get_openblas_arch.sh, line 645) Non-zero exit code detected.
ERROR: (./scripts/setup_buildtools.sh, line 38) Non-zero exit code detected.


这就是报错代码,麻烦您看一下这到底是什么原因啊,网络不行吗?不管是用这个方法,还是sob老师的方法,在CentOS和Ubuntu系统里都是报错这个代码,mpi也都提前安装了,数据库也安装了,但是到安装cp2k自己的库时就卡着了
作者
Author:
ChemG    时间: 2022-7-7 10:13
guoguoping199 发表于 2022-7-7 09:58
==================== Finding GCC from system paths ====================
path to gcc is  /usr/bin/ ...

错误很明显,你的包没下载成功。自己下下来放到build文件夹里就行了
作者
Author:
guoguoping199    时间: 2022-7-7 10:19
ChemG 发表于 2022-7-7 10:13
错误很明显,你的包没下载成功。自己下下来放到build文件夹里就行了

自己下载需要去哪里下载啊?刚接触这个,还不太了解
作者
Author:
guoguoping199    时间: 2022-7-7 12:18
ChemG 发表于 2022-7-7 10:13
错误很明显,你的包没下载成功。自己下下来放到build文件夹里就行了

知道怎么下载了,谢谢大佬
作者
Author:
wanlichuan    时间: 2022-7-27 10:23
本帖最后由 wanlichuan 于 2022-8-1 18:38 编辑

请教大佬,在Ubuntu20.04虚拟机上按照楼主的步骤安装,显示安装成功了:
------------------------------- Summary--------------------------------
Number of FAILED  tests 0
Number of WRONG   tests 0
Number of CORRECT tests 3806
Total number of   tests 3806

Summary: correct: 3806 / 3806; 162min
Status: OK
……  ……
Successfully built 1166e52fb4fa
Successfully tagged cp2k_prod_psmp:latest


但是在运行任务时,出现了下面的错误:
root@ubuntu:/home/cp2k10.0/benchmarks/QS_single_node#docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec-genv OMP_NUM_THREADS=1 -np 2 cp2k dbcsr.inp

  ******** ******  **  PROGRAM STARTED AT               2022-07-29 01:42:00.884
******* ***  *** **   PROGRAM STARTED ON                          38a900c1646c
**   ****   ******    PROGRAM STARTED BY                             <unknown>
*******    ** ** **   PROGRAM PROCESS ID                                   398
  ******  *******  ** PROGRAM STARTED IN                                  /mnt
CP2K| version string:                 CP2K version 2022.1(Development Version)
CP2K|source code revision number:                                         git:
CP2K|cp2kflags: omp libint fftw3 libxc pexsi elpa parallel mpi3 scalapack cosm
CP2K|            a quip xsmm plumed2 spglib siriuslibvori libbqb
CP2K|is freely available from                           https://www.cp2k.org/
CP2K|Program compiled at                         Thu Jul 28 10:46:55 UTC 2022
CP2K|Program compiled on                                         2e08f5a880fd
CP2K|Program compiled for                                               local
CP2K|Data directory path                                       /opt/cp2k/data
CP2K|Input file name                                                dbcsr.inp

GLOBAL| Method name                                                       TEST
GLOBAL| Project name                                                    PROJECT
GLOBAL| Run type                                                          NONE
GLOBAL| FFT library                                                      FFTW3
GLOBAL| Diagonalization library                                            ELPA
GLOBAL| Minimum number of eigenvectors forELPA usage                        16
GLOBAL| Orthonormality check foreigenvectors                         DISABLED
GLOBAL| Matrix multiplication library                                     COSMA
GLOBAL| All-to-all communication in singleprecision                          F
GLOBAL| FFTs using library dependentlengths                                 F
GLOBAL| Grid backend                                                       AUTO
GLOBAL| Global print level                                              MEDIUM
GLOBAL| MPI I/O enabled                                                      T
GLOBAL| Total number of message passingprocesses                             2
GLOBAL| Number of threads for thisprocess                                   1
GLOBAL| This output is from process                                           0
GLOBAL| Stack size for threads created byOpenMP (OMP_STACKSIZE)        default
GLOBAL| CPU model name                 Intel(R) Core(TM) i5-8250U CPU@ 1.60GHz
GLOBAL| CPUID                                                             1002

……  ……
*******************************************************************************
*                             PERFORMANCETESTS                               *
*******************************************************************************
Testing with sizes  13800 13800  13800 min/max blocksizes    23    23 transposed? F T

===================================================================================
=  BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=  PID 399 RUNNING AT 38a900c1646c
=  EXIT CODE: 9
=  CLEANING UP REMAINING PROCESSES
=  YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXITSTRING: Killed (signal 9)
This typically refers to a problem with yourapplication.
Please see the FAQpage for debugging suggestions
应该怎么解决呢?请多指教。


作者
Author:
nianbin    时间: 2022-9-21 14:05
注意现在安装包自带的spglib现在出现问题了,导致无法下载安装出错,需要按照下面的方式,把toolchain中对应的脚本修改一下,具体如下:
https://github.com/cp2k/cp2k/pul ... 0560685ed42d54066aa




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3