2025年5月Intel平台VASP.6.4.3的编译安装
WSL的安装
选择Arch Linux
,个人比较熟悉,仅供学习使用不作为稳定的生产力环境,配置如下,两颗E5 2676 v3
打开powershell
或者终端
,输入wsl --install archlinux
以自动安装,这一步需要使用代理(MAGIC),主机上使用Clash-Verge
进行代理(运气好也能连上),终端
中输入:
1 2 set http_proxy=http://127.0.0.1:7897 set https_proxy=http://127.0.0.1:7897
如果没有条件使用代理,也可以手动安装,参考Arch Wiki
,https://wiki.archlinuxcn.org/wiki/在_WSL_上安装_Arch_Linux,手动下载`.wsl`镜像,然后安装
笔者计算机C盘性能太差,于是想要将wsl2迁移到另一个分区
安装成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [root@NAS ~]# fastfetch -` root@NAS .o+` -------- `ooo/ OS: Arch Linux x86_64 `+oooo: Host: Windows Subsystem for Linux - archlinux (2.4.12) `+oooooo: Kernel: Linux 5.15.167.4-microsoft-standard-WSL2 -+oooooo+: Uptime: 5 hours, 16 mins `/:-:++oooo+: Packages: 155 (pacman) `/++++/+++++++: Shell: bash 5.2.37 `/++++++++++++++: WM: WSLg 1.0.65 (Wayland) `/+++ooooooooooooo/` Terminal: xterm-256color ./ooosssso++osssssso+` CPU: Intel(R) Xeon(R) E5-2676 v3 (48) @ 2.39 GHz .oossssso-````/ossssss+` Memory: 1.09 GiB / 15.57 GiB (7%) -osssssso. :ssssssso. Swap: 304.95 MiB / 4.00 GiB (7%) :osssssss/ osssso+++. Disk (/): 18.67 GiB / 1006.85 GiB (2%) - ext4 /ossssssss/ +ssssooo/- Disk (/mnt/c): 159.05 GiB / 237.01 GiB (67%) - 9p `/ossssso+/:- -:/+osssso+- Disk (/mnt/d): 13.16 TiB / 14.55 TiB (90%) - 9p `+sso+:-` `.-/+oso: Disk (/mnt/e): 1.70 TiB / 3.64 TiB (47%) - 9p `++:. `-/+/ Disk (/mnt/f): 49.45 GiB / 476.94 GiB (10%) - 9p .` `/ Disk (/mnt/g): 25.16 TiB / 29.10 TiB (86%) - 9p Local IP (eth0): 172.31.36.99/20 Locale: en_US.UTF-8
编译器的安装
1 2 3 4 5 6 7 8 9 10 11 pacman -S make pacman -S cmake pacman -S gcc pacman -S gcc-fortran pacman -Syy yay yay -S downgrade downgrade -S gcc-libs downgrade -S gcc downgrade -S gcc-fortran
前往Intel官网下载oneAPI BaseTool kithttps://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html?packages=oneapi-toolkit&oneapi-toolkit-os=linux&oneapi-lin=online
1 2 chmod +x ./xxxxxxxxxx.sh ./xxxx.sh
oneAPI BaseTool kit不需要全部安装,只需安装MKL部分,
HPC也只需安装一部分
此处博主踩了较多的坑:
编译器采用2022版,不可采用过新编译器
2024年10月后,Intel删除了ifort编译器
gcc编译器不可太新,否则编译某些fortran
模块会报错,博主从14降级到了12.1.0
VASP.6.4.3的编译安装
源码包可以去各大私密性较强的论坛或者微信公众号获取,仅供个人学习使用,不用于学术、商业用途
选择arch/
目录中的模板makefile.include.intel
,复制到../
(上一层目录),并修改名称为makefile.include
,修改目录如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 CPP_OPTIONS = -DHOST=\"LinuxIFC\" \ -DMPI -DMPI_BLOCK=8000 -Duse_collective \ -DscaLAPACK \ -DCACHE_SIZE=4000 \ -Davoidalloc \ -Dvasp6 \ -Duse_bse_te \ -Dtbdyn \ -Dfock_dblbuf CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS) FC = mpiifort FCL = mpiifort FREE = -free -names lowercase FFLAGS = -assume byterecl -w OFLAG = -O2 -xhost OFLAG_IN = $(OFLAG) DEBUG = -O0 OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o OBJECTS_O2 += fft3dlib.o CPP_LIB = $(CPP) FC_LIB = $(FC) CC_LIB = icc CFLAGS_LIB = -O FFLAGS_LIB = -O1 FREE_LIB = $(FREE) OBJECTS_LIB = linpack_double.o CXX_PARS = icpc LLIBS = -lstdc++ VASP_TARGET_CPU ?= -xHOST FFLAGS += $(VASP_TARGET_CPU) FCL += -qmkl=sequential MKLROOT ?= /opt/intel/oneapi/mkl/2022.1.0 /home/storm/intel/oneapi/mkl/2022.1.0 LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 INCS =-I$(MKLROOT)/include/fftw
然后开始编译
发现使用命令make all -j48
会编译报错
于是改为官方wiki的命令make DEPS=1 -j48
,编译成功
测试
make test
进行测试,有一些报错,懒得管了、、、能跑就行