本文记录了在ARM架构的Ubuntu系统(基于天河星逸飞腾集群arm架构的docker镜像)上使用K8s docker镜像为环境,安装VASP5.4.4和QE 7.5的步骤:1)修改lapack配置并编译;2)处理fox编译问题,添加aarch64支持;3)完成QE主程序编译,启用SCALAPACK和多个插件。文中详细列出了各阶段的配置参数和编译命令,包括编译器设置、路径修改等关键环节,最终成功完成两个计算软件的安装。
一开始编译的是vasp6.4.2,但是一直有个报错,fftw3问题,所以重新装了一个新版fftw3

1. fftw3、hdf5安装

apt-get install fftw3 fftw3-dev
apt-get install libhdf5-dev

2. vasp安装

cp arch/makefile.include.linux_gnu ./makefile.include
vi makefile.include

修改makefile.include中的FC,FCL,CC_LIB,CXX_PARS,CC,CXX、BLAS,LAPACK,SCALAPACK路径,以下为makefile.include文件内容

 Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxGNU\" \
             -DMPI -DMPI_BLOCK=8000 \
             -Duse_collective \
             -DscaLAPACK \
             -DCACHE_SIZE=4000 \
             -Davoidalloc \
             -Duse_bse_te \
             -Dtbdyn \
             -Duse_shmem

CPP        = gcc-9 -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)

FC         = mpif90
FCL        = mpif90

FREE       = -ffree-form -ffree-line-length-none

FFLAGS     = -w
OFLAG      = -O2
OFLAG_IN   = $(OFLAG)
DEBUG      = -O0

LIBDIR     = /HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/install/mathlib-gcc9/lib
BLAS       = -L$(LIBDIR) -lopenblas
LAPACK     = -L$(LIBDIR) -ltmglib -llapack
BLACS      =
SCALAPACK  = -L/HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/software/scalapack-2.2.2 -lscalapack $(BLACS)

LLIBS      = $(SCALAPACK) $(LAPACK) $(BLAS)

FFTW       ?= /HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/install/fftw3-gcc9
LLIBS      += -L$(FFTW)/lib -lfftw3
INCS       = -I$(FFTW)/include

OBJECTS    = fftmpiw.o fftmpi_map.o  fftw3d.o  fft3dlib.o

OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o

# For what used to be vasp.5.lib
CPP_LIB    = $(CPP)
FC_LIB     = $(FC)
CC_LIB     = gcc-9
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB   = $(FREE)

OBJECTS_LIB= linpack_double.o getshmem.o

# For the parser library
CXX_PARS   = g++-9

LIBS       += parser
LLIBS      += -Lparser -lparser -lstdc++

# Normally no need to change this
SRCDIR     = ../../src
BINDIR     = ../../bin

#================================================
# GPU Stuff

CPP_GPU    = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DCUFFT_MIN=28 -UscaLAPACK # -DUSE_PINNED_MEMORY

OBJECTS_GPU= fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.o

CC         = gcc-9
CXX        = g++-9
CFLAGS     = -fPIC -DADD_ -openmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS

CUDA_ROOT  ?= /usr/local/cuda
NVCC       := $(CUDA_ROOT)/bin/nvcc
CUDA_LIB   := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublas

GENCODE_ARCH    := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \
                   -gencode=arch=compute_35,code=\"sm_35,compute_35\" \
                   -gencode=arch=compute_60,code=\"sm_60,compute_60\"

MPI_INC    = /HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/install/openmpi-gcc9/include
make -j 4

3. quantum espresso 安装

3.1 lapack安装

cd external
sh initialize_external_repos.sh
cd lapack
vi make.inc

修改gcc为gcc-9,gfortran为gfortran-9

修改BLASLIB/CBLASLIB/LAPACKLIB/TMGLIB/LAPACKELIB路径

make blaslib
make cblaslib
make all -j 4

3.2 fox安装

qe-7.5文件夹执行

mkdir build2 && cd build2
cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_Fortran_COMPILER=mpif90 -DQE_LAPACK_INTERNAL=ON -DBLAS_LIBRARIES=/HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/software/qe-7.5/external/lapack/libblas.o -DLAPACK_LIBRARIES=/HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/software/qe-7.5/external/lapack/liblapack.o -DQE_ENABLE_FOX=ON ..

报错fox无法编译,进入external/fox/config文件夹,通过vi查看config.guess文件,添加aarch64选项
在这里插入图片描述

CC=mpicc FC=mpifort ./configure
make -j 4 all

3.3 qe-7.5安装

cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_Fortran_COMPILER=mpif90 -DBLAS_LIBRARIES=/HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/software/qe-7.5/external/lapack/libblas.a -DLAPACK_LIBRARIES=/HOME/nscc-gz/nscc-gz_qmo3/HDD_POOL/software/qe-7.5/external/lapack/liblapack.a -DENABLE_SCALAPACK=ON -DQE_ENABLE_PLUGINS="d3q;gipaw;pw2qmcpack" -DQE_ENABLE_FOX=ON ..
make -j 4 all
make test

安装包

软件安装包链接:[link](https://download.csdn.net/download/weixin_49452153/92281113)

更多推荐