(no title)
后记
重新安装了Rocky Linux10,并安装了Slurm作业系统,尝试编译安装vasp,由于用的Rocky10,gcc等各种套件都比较新,折腾麻了,各种编译报错,干脆换到了较新的vasp.6.5.1版本,一遍过!
编译HDF5
编译HDF5部分内容参考了教程:https://zhuanlan.zhihu.com/p/617261007
编译安装HDF5之前需要先编译安装它的依赖zlib😂,首先去官网https://www.zlib.net/,目前最新的的版本是zlib 1.3.1,下载源代码source
code,哪种格式的都行,我的工作站有网就直接用wget了:
1 | wget https://www.zlib.net/zlib-1.3.1.tar.gz |
没网的集群自己下载到本地计算机再上传到集群上。
解压、配置、编译、测试、安装:
1 | tar -zxvf zlib-1.3.1.tar.gz |
1 | ./configure --prefix=install_directory |
1 | make -jN |
1 | make test |
1 | make install |
接下来安装szip,官网(https://docs.hdfgroup.org/archive/support/doc_resource/SZIP/index.html)同样只提供了源代码,需要编译安装,安装过程大差不差,类似的
接下来编译安装HDF5,官网打开比较慢、、、目前最新版本是1.14.6,使用1.14.5版本编译成功
1 | wget https://support.hdfgroup.org/releases/hdf5/v1_14/v1_14_6/downloads/hdf5-1.14.6.tar.gz |
1 | tar -zxvf hdf5-1.14.6.tar.gz |
接下来是配置,需要使用intel的编译器,所有首先需要安装intel的oneapi套件,安装下面这些:
需要格外注意,我是用的是最新版的oneapi套件,已经删除了对icc、ifort的支持,所以需要注意CC、FC、CXX的写法
1 | ./configure --prefix=/opt/apps/vasp.6.5.1/hdf5/hdf5 \ |
接着编译、测试、安装
1 | make -jN |
1 | make check |
1 | make install |
Wannier安装
接下来编译安装Wannier90,官网是https://wannier.org/download/,下载:
1 | wget https://github.com/wannier-developers/wannier90/archive/v3.1.0.tar.gz |
然后是解压,接着拷贝config文件夹中的模板:
1 | cp config/make.inc.ifort make.inc |
Wannier90的模板并没有调整,依然使用的ifort,然鹅Intel已经废弃了ifort,所以得手动修改一下模板了,把ifort改成ifx,依此类推,改完后的模板如下:
1 | root@cernet2:~/Wannier90/wannier90-3.1.0# cat make.inc |
接着编译吧:
1 | make -jN |
再编译库:
1 | make lib -jN |
最终,得到了两个重要的文件:wannier90.x和libwannier.a,记住这两个文件所在的目录,
VTST的安装
VTST,是一个”插件“,随着vasp的编译而安装,首先下载VTST:
1 | wget https://theory.cm.utexas.edu/code/vtstcode-209.tgz |
参考官网的安装过程,需要修改源代码,谨慎且小麻烦,https://theory.cm.utexas.edu/vtsttools/installation.html
按照教程修改vasp的main.F源代码,源代码都在src目录内
接着将VTST文件夹下的所有源码文件复制到vasp的源码文件夹内,此时会覆盖掉chain.F
然后修改.object
接着修改源码目录内的makefile文件,将其中的某一行由:
1 | LIB=lib parser |
修改为:
1 | LIB= lib parser pyamff_fortran |
我编译vasp时为了加快编译速度,需要并行编译,因此也需要将:
1 | dependencies: sources |
修改为:
1 | dependencies: sources libs |
至此,VTST需要做的已经完成了,开始编译vasp吧~~
编译vasp
使用makefile.include.oneapi这个模板,这个模板已经适配了新版的intel套件,只需要修改hdf5和wannier90这两个地方就行,本次编译使用了比较激进的方案,
1 | # Default precompiler options |
1 | make DEPS=1 -jN |
笔者用的双路2676 v3的落后的工作站,因为调用了24个核心并行编译所以比较快,编译时间大概是四五分钟
接着是测试,make test默认调用4个核心,可以编辑runtest文件手动修改核心数目加快测试速度,关于测试的说明在官网:https://www.vasp.at/wiki/Validation_tests
我自己测试时需要手动加上hdf5库的环境变量,否则一个测试也跑不了:
1 | export LD_LIBRARY_PATH=/opt/apps/vasp.6.5.1/hdf5/hdf5/lib:$LD_LIBRARY_PATH |
对了,为了避免任何关于内存栈的错误,也请执行下面四行命令(从集群slurm脚本抄的)
1 | ulimit -d unlimited |
./install_cp2k_toolchain.sh –with-sirius=no –with-intelmpi=system –with-mkl=system –with-openmpi=no –with-plumed=install –with-cmake=system –with-ninja=install –with-dftd4=install
cp2k的dftd4库和ninja库参考公社上的文件,http://bbs.keinsci.com/forum.php?mod=viewthread&tid=55624&highlight=dftd4