Conda环境下编译CP2K
- wget [url]https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-Linux-x86_64.sh[/url]
复制代码 2)运行安装程序,按照提示输入yes或回车;
- bash Miniconda3-py37_4.11.0-Linux-x86_64.sh
复制代码 3)打开.bashrc文件,在里面添加“conda config --set auto_activate_base false”语句,避免Conda环境在进入终端的自启动。重新进入终端后,输入"conda"指令,出现指令介绍,表明conda安装成功。
3,创建CP2K-9.1的环境并编译
1)首先是在conda中创建名为“cp2k-v9.1”的环境;
- conda create --name cp2k-v9.1
复制代码 2)进入cp2k-v9.1的conda环境,并编译cp2k-9.1(https://anaconda.org/conda-forge/cp2k),等待屏幕提示完成;
- conda env list #罗列conda环境
- conda activate cp2k-v9.1 #进入cp2k-v9.1的环境
- conda install -c conda-forge cp2k #默认安装cp2k-v9.1
复制代码 3)创建CP2K_DATA_DIR目录的环境变量,下载cp2k-9.1的安装包(https://github.com/cp2k/cp2k/rel ... .0/cp2k-9.1.tar.bz2),网络好的话(**上网),可以直接用wget下载,网络不好的话,可利用Github文件的加速网站(https://ghproxy.com/)下载,把上述链接输入到网站中便能下载;
- wget https://github.com/cp2k/cp2k/releases/download/v9.1.0/cp2k-9.1.tar.bz2
- or
- wget https://ghproxy.com/https://github.com/cp2k/cp2k/releases/download/v9.1.0/cp2k-9.1.tar.bz2
- tar -jxvf cp2k-9.1.tar.bz2
- vi ~/.bashrc
- export CP2K_DATA_DIR=/home/user/cp2k-9.1/data #cp2k-9.1的放置目录任意
复制代码 4)重启终端,安装openmpi-4.1.1
- conda activate cp2k-v9.1 #重启终端后,重新进入cp2k-v9.1的conda环境
复制代码 如果此时在终端中输入cp2k.psmp,会出现mpi的运行错误,提示"libmpi.so.40:cannot open shared object file",其原因是大概率是python环境中的MPI无法被调用,可以加入到.bashrc文件中,使其调用(https://stackoverflow.com/questi ... -shared-object-file)。在.bashrc文件中加入miniconda3自身所携带的openmpi的环境变量,发现运行时仍然会报错,这大概率是因为,python中的openmpi可能存在组件不完善的情况。
我们可在官网下载openmpi-4.1.1的安装包,并参考卢老师的帖子安装openmpi-4.1.1(http://sobereva.com/451)。安装完成后,重新进入终端,输入“conda activate cp2k-v9.1”,进入conda运行环境,此时输入“cp2k.psmp -v”,能看到cp2k的编译信息。
4,算例测试
测试了CP2K的一些官方算例,和sob老师博文(http://sobereva.com/587)中的算例,都能正常运行(杂化泛函不能计算,原始组件中缺少libint库,不知道后续开发者会不会更新),运行指令如下:
- nohup cp2k.psmp *.inp > *.out & #符号“*”处代表具体文件名
- or
- nohup cp2k.psmp *.inp 1 > *.out 2 > *.err &
复制代码 上述是以openmpi的方式运行cp2k,默认使用机器的全部核心,如果想以MPI的方式运行,可在.bashrc中输入“export OMP_NUM_THREADS=1”,保存退出后,重新进入终端,用下列语句运行:
- mpirun -np 4 cp2k.psmp *.inp 1>*.out 2>*.err
复制代码 运行上述指令后,top进入终端,可以看到4个cp2k.psmp进程在运行,其中的4可以根据实际情况修改为自己想要的核心数。运行完计算后,可输入“conda deactivate”,退出cp2k-v9.1的运行环境。
5,总结
希望本次帖子能够对编译CP2K的伙伴们一些有益的参考,本文的排版没有调整(考虑到多次调整,管理员审核也比较麻烦,以后发帖会调整好排版)。
|