|
本帖最后由 lzc110 于 2025-1-26 12:43 编辑
最近准备转向VASP做第一性原理的方向,以前做的模拟都是基于有限元的,现在由于条件限制,想发展一个有前途的方向,所以选择了第一性原理。
主要目标有两个,一个是Quantum Espesso,另一个就是VASP了,两个的优缺点也研究了,两个也都进行了尝试,这里记录一下VASP的安装。
为什么发这个帖子,一个目的是为了记录一下,另一个主要目的是为了能融入计算化学公社,毕竟是一个新手,刷刷存在感刷刷经验,恰巧以前用过Windows和WSL。
这里面参考了大量的其他资料教程,结合了自己的经验和踩的坑,已经记不清该感谢多少人了,在此一并感谢!有不当指出还请批评指正。
网上对于题目的安装内容的教程比较分散零散,且不一定适合Win+WSL,本帖子就是为解决这个问题而生。Windows是比较便利的操作系统,尤其是文件操作处理方面。Linux在科学计算方面有其独到优势,最主要的是一些软件只有Linux版,但是Linux天然操作繁琐,远没有Windows系统便利。那么WSL刚好结合了两者的优点,解决了他们的不足之处,在Windows系统里面,wsl界面只是一个窗口,可以在资源管理器里面直接访问Linux里面的文件,可以互相拷贝文件,并直接对其进行编辑,特别方便。这里额外说明一下,不建议使用Win10系统的WSL,请直接升级到Win11系统,因为Win11系统是底层虚拟化的,Linux效率可以达到最高。当然开启虚拟化之后,Windows和Linux性能都有一定损失,结合网上的说法和自己的经验,这个损失大概在3%,完全可以接受的。使用Intel库完全是因为自己懒,这个使用比较简单。ELPA特征值求解器,据说可以提高VASP的计算啊速度达到25%,这个我不确定,因为我没比较过,但是这里一并编译了。
这里额外说一下,尽量安装最新的LTSC系统,没有家庭版乱七八糟的软件,剩余的都是自带的基础软件,唯一少的是Microsoft Store,只要在power shell里面运行如下代码,过一会,就安装上了。系统激活可以用mas数字权利永久激活,激活后是IoT LTSC版,除了名字外没有任何区别
在一个工作站上面使用Win11系统时候,总是莫名会卡顿一下,这里需要设置一下,在控制面板里面的电源管理选择均衡模式,但是在电源选项里面把最小处理器状态设置为100%,同时在uwp的设置里面,电源模式设置为最佳性能。这样会好很多。另外我把全局变量都写在了/etc/profile里面了。
- Win11系统在“Windows功能”里面开启“Hyper-v”和“基于Linux系统的Windows子系统”然后重启
- 在Microsoft Store商店里面安装Debian,或者自己转成exe安装包,这样可以将WSL系统安装在任意位置。这个系统的大小只有84M,但是完全够用了。
- 运行Debian,设置用户名密码略。
- 这里为了接下来配置方便,进入root账户,更改系统源为阿里源
- sed -i -e 's/deb.debian.org/mirrors.aliyun.com/g' -e 's/security.debian.org/mirrors.aliyun.com/g' -e 's/ftp.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
- apt upgrade
- apt update
复制代码
- 安装几个程序
- apt-get install rsync build-essential python3
复制代码
这里安装的是2025版的,最新的使用的是icx,ifx和icpx,这里需要注意。另外旧版本需要安装两个,base toolkit 和oneAPI HPC Toolkit,但是新版本只用这一个就够了。
- 运行如下代码下载,或者提前下载
- wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b7f71cf2-8157-4393-abae-8cea815509f7/intel-oneapi-hpc-toolkit-2025.0.1.47_offline.sh
复制代码
运行如下代码安装,这里其实只用安装需要的4个编译器和一些取消就提示被编译器使用的组件就行了,一共是7个,下面代码是完全安装,后面的指令去掉就可以自己选择安装组件 - sudo sh ./intel-oneapi-hpc-toolkit-2025.0.1.47_offline.sh -a --silent --cli --eula accept
复制代码
把如下信息写在/etc/profle里面,这里就可以用Windows的文本编辑器修改了,如果没有权限保存,在Linux里面运行chmod 777 /etc/profile修改权限,如果Windows不能复制文件,也用类似的命令修改权限。 - source /opt/intel/oneapi/setvars.sh intel64
- export LD_LIBRARY_PATH=/opt/intel/oneapi/2025.0/lib\:\$LD_LIBRARY_PATH
复制代码
最后启用一下新的变量配置,如果接下来步骤里面出现变量无法识别时候,就再次执行这个命令
这里和VASP编译参考了部分哈酱的安装vasp-6.4.2含有elpa本征值求解器,也修正了其中的错误
- 下载elpa
- wget https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/2024.05.001/elpa-2024.05.001.tar.gz
复制代码
配置,代码参考修改了官方文档,由于本人电脑cpu不支持avx512指令,必须禁掉,不然编译不通过,如果支持这个指令,最后的 --disable-avx512可以删掉,这个配置会把安装位置放在/opt/下面,可根据自己喜好修改位置,修改--prefix=后的位置即可 - cd elpa-2024.05.001
- ./configure --prefix=/opt/elpa-2024.05.001 CC=mpiicx CXX=mpiicpx FC=mpiifx \
- CFLAGS="-O3 -xHost" FCFLAGS="-O3 -xHost" \
- SCALAPACK_FCFLAGS="-I${MKLROOT}/include/intel64/lp64" \
- SCALAPACK_LDFLAGS="-L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 \
- -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 \
- -lpthread -lm -Wl,-rpath,${MKLROOT}/lib/intel64" \
- --enable-option-checking=fatal --with-mpi=yes --disable-avx512
复制代码
编译
添加变量 - export LD_LIBRARY_PATH=/opt/elpa-2024.05.001/lib:$LD_LIBRARY_PATH
- source /etc/profile
复制代码
- 进入VASP目录,拷贝合适的编译文件
- cd vasp.6.4.2
- cp arch/makefile.include.intel makefile.include
复制代码
修改makefile.include13和14行的mpiifort为mpiifx,32行icc为icx,40行icpc为icpx,并在结尾添加如下代码,可以直接用Windows的文本编辑器修改 - CPP_OPTIONS += -DELPA
- ELPA_ROOT ?= /opt/elpa-2024.05.001
- LLIBS += -L$(ELPA_ROOT)/lib -lelpa
- INCS += -I$(ELPA_ROOT)/include/elpa-2024.05.001/elpa
- INCS += -I$(ELPA_ROOT)/include/elpa-2024.05.001/modules
复制代码
编译,18是指定编译使用的线程数
最后把三个程序写人/etc/profile环境变量,这个是参考了官方例子里面的代码,确实很方便,写入后,以后运行程序,只需要"$vasp_std"就能替代原来很长的代码 - export vasp_std="mpirun -np 18 /opt/vasp.6.4.2/bin/vasp_std"
- export vasp_gam="mpirun -np 18 /opt/vasp.6.4.2/bin/vasp_gam"
- export vasp_ncl="mpirun -np 18 /opt/vasp.6.4.2/bin/vasp_ncl"
复制代码
最后source一下
下载一个官方例子,运行一下
Windows查看Linux文件效果
|
评分 Rate
-
查看全部评分 View all ratings
|