一键配置编译ABACUS | toolchain 脚本的使用
©️ Copyright 2023 @ Authors
作者:
量子御坂QuantumMisaka 📨
日期:2024-03-18
最近更新:2024-09-20
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 ubuntu:22.04-py3.10-intel2022 镜像 和任意配置机型(推荐 c2_m4_cpu 或 c16_m32_cpu )即可开始。
🎯 这是目前第一个在通过用 ABACUS 的toolchain脚本集,一键配置ABACUS所需依赖并一键编译安装ABACUS的教程,面向仅有Linux使用基础的服务器用户。
本安装方法可在线或离线进行,可在无法联网的HPC服务器上完成ABACUS的配置部署
本教程可一键运行,完整运行该教程需要约 10-20 分钟 ( c16_m32_CPU 节点配置下)。
1. 快速了解ABACUS
ABACUS是由何力新教授、任新国研究员和陈默涵助理教授主导开发的,拥有完全自主知识产权的一款DFT软件,主要针对凝聚态材料模拟计算,通过求解Kohn-Sham方程得到材料基态电荷密度分布,并由此计算目标材料的各项物理性质。
作为采用C++编写的一款DFT软件,ABACUS模块化较清晰,加上具备较完善的自动测试集,进一步的功能开发和性能优化都较为便利。ABACUS采取了依据LGPL协议的开源合作的开发方式,加入了Deep Modeling社区。目前已参与的开发者主要来自中科大、北大、中科院物理所、深势科技、字节跳动等单位,并期待更多的开发者加入。
2. ABACUS下载与ABACUS-toolchain简介
Toolchain已经合并到ABACUS的仓库之中,目前已更新至2024.2版本。通过拉取ABACUS仓库的方法即可一起拉取toolchain
Cloning into 'abacus-develop'... remote: Enumerating objects: 89867, done. remote: Counting objects: 100% (1901/1901), done. remote: Compressing objects: 100% (1327/1327), done. remote: Total 89867 (delta 1069), reused 1089 (delta 571), pack-reused 87966 (from 1) Receiving objects: 100% (89867/89867), 140.89 MiB | 5.30 MiB/s, done. Resolving deltas: 100% (67563/67563), done.
/opt/abacus-develop/toolchain
通过如下方法可以确认ABACUS和Toolchain的版本
#ifndef VERSION #define VERSION "v3.7.5" #endif
# version file to force a rebuild of the entire toolchain VERSION="2024.2"
让我们一起看看toolchain脚本流的文件架构
. ├── Details.md ├── README.md ├── build_abacus_gnu.sh ├── build_abacus_intel-mpich.sh ├── build_abacus_intel.sh ├── install_abacus_toolchain.sh ├── install_requirements.sh ├── install_requirements_fedora.sh ├── install_requirements_ubuntu.sh ├── pre_set.sh ├── scripts │ ├── VERSION │ ├── common_vars.sh │ ├── get_openblas_arch.sh │ ├── parse_if.py │ ├── signal_trap.sh │ ├── stage0 │ │ ├── install_cmake.sh │ │ ├── install_gcc.sh │ │ ├── install_intel.sh │ │ ├── install_stage0.sh │ │ └── setup_buildtools.sh │ ├── stage1 │ │ ├── install_intelmpi.sh │ │ ├── install_mpich.sh │ │ ├── install_openmpi.sh │ │ └── install_stage1.sh │ ├── stage2 │ │ ├── install_mathlibs.sh │ │ ├── install_mkl.sh │ │ ├── install_openblas.sh │ │ └── install_stage2.sh │ ├── stage3 │ │ ├── install_elpa.sh │ │ ├── install_fftw.sh │ │ ├── install_libxc.sh │ │ ├── install_scalapack.sh │ │ └── install_stage3.sh │ ├── stage4 │ │ ├── install_cereal.sh │ │ ├── install_libcomm.sh │ │ ├── install_libnpy.sh │ │ ├── install_libri.sh │ │ ├── install_libtorch.sh │ │ ├── install_rapidjson.sh │ │ └── install_stage4.sh │ └── tool_kit.sh ├── toolchain_gnu.sh ├── toolchain_intel-mpich.sh └── toolchain_intel.sh 6 directories, 44 files
在toolchain目录下有一个README文件,里面涵盖了目前toolchain脚本集的完善程度以及toolchain的基本使用方法,可以参考该README使用toolchain构建不同编译环境的工具链,完成ABACUS依赖库的构建。
# The ABACUS Toolchain Version 2024.2 ## Author [QuantumMisaka](https://github.com/QuantumMisaka) (Zhaoqing Liu) @PKU @AISI Inspired by cp2k-toolchain, still in improvement. You should have read this README before using this toolchain. ## Introduction This toolchain will help you easily compile and install, or link libraries ABACUS depends on in ONLINE or OFFLINE way, and give setup files that you can use to compile ABACUS. ## Todo - [x] `gnu-openblas` toolchain support for `openmpi` and `mpich`. - [x] `intel-mkl-mpi` toolchain support using `icc`/`icpc`/`ifort` or `icx`/`icpx`/`ifort`. (`icx` as default, but will have problem for ELPA in AMD machine, one can specify `--with-intel-classic=yes` to use `icc`), - [x] `intel-mkl-mpich` toolchain support. - [x] Automatic installation of [CEREAL](https://github.com/USCiLab/cereal) and [LIBNPY](https://github.com/llohse/libnpy) (by github.com) - [x] Support for [LibRI](https://github.com/abacusmodeling/LibRI) by submodule or automatic installation from github.com (but installed LibRI via `wget` seems to have some problem, please be cautious) - [x] A mirror station by Bohrium database, which can download CEREAL, LibNPY, LibRI and LibComm by `wget` in China Internet. - [x] Support for GPU compilation, users can add `-DUSE_CUDA=1` in builder scripts. - [ ] Change the downloading url from cp2k mirror to other mirror or directly downloading from official website. (doing) - [ ] A better README and Detail markdown file. - [ ] Automatic installation of [DEEPMD](https://github.com/deepmodeling/deepmd-kit). - [ ] Better compliation method for ABACUS-DEEPMD and ABACUS-DEEPKS. - [ ] A better `setup` and toolchain code structure. - [ ] Modulefile generation scripts. - [ ] Support for AMD compiler and math lib like `AOCL` and `AOCC` ## Usage Online & Offline Main script is *install_abacus_toolchain.sh*, which will use scripts in *scripts* directory to compile install dependencies of ABACUS. It can be directly used, but not recommended. There are also well-modified script to run *install_abacus_toolchain.sh* for `gnu-openblas` and `intel-mkl` toolchains dependencies. ```shell # for gnu-openblas > ./toolchain_gnu.sh # for intel-mkl > ./toolchain_intel.sh # for intel-mkl-mpich > ./toolchain_intel-mpich.sh ``` It is recommended to run them first to get a fast installation of ABACUS under certain environments. If you have a fresh environments and you have `sudo` permission, you can use *install_requirements.sh* to install system libraries and dependencies needed by toolchain. **Notice: You SHOULD `source` or `module load` related environments before use toolchain method for installation, espacially for `gcc` or `intel-oneAPI` !!!! for example, `module load mkl mpi icc compiler`** **Notice: You SHOULD keep your environments systematic, for example, you CANNOT load `intel-OneAPI` environments while use gcc toolchain !!!** **Notice: If your server system already have libraries like `cmake`, `openmpi`, please change related setting in `toolchain*.sh` like `--with-cmake=system`** ```shell > ./install_ABACUS_toolchain.sh ``` All packages will be downloaded from [cp2k-static/download](https://www.cp2k.org/static/downloads). by `wget` , and will be detailedly compiled and installed in `install` directory by toolchain scripts, despite of: - `CEREAL` which will be downloaded from [CEREAL](https://github.com/USCiLab/cereal) - `Libnpy` which will be downloaded from [LIBNPY](https://github.com/llohse/libnpy) - `LibRI` which will be downloaded from [LibRI](https://github.com/abacusmodeling/LibRI) - `LibCOMM` which will be downloaded from [LibComm](https://github.com/abacusmodeling/LibComm) - `RapidJSON` which will be downloaded from [RapidJSON](https://github.com/Tencent/rapidjson) Notice: These packages will be downloaded by `wget` from `github.com`, which is hard to be done in Chinese Internet. You may need to use offline installation method. Instead of github.com, we offer other package station, you can use it by: ```shell wget https://bohrium-api.dp.tech/ds-dl/abacus-deps-93wi-v3 -O abacus-deps-v3.zip ``` `unzip` it ,and you can do offline installation of these packages above after rename. ```shell # packages downloaded from github.com mv v1.3.2.tar.gz build/cereal-1.3.2.tar.gz ``` The above station will be updated handly but one should notice that the version will always lower than github repo. If one want to install ABACUS by toolchain OFFLINE, one can manually download all the packages from [cp2k-static/download](https://www.cp2k.org/static/downloads) or official website and put them in *build* directory by formatted name like *fftw-3.3.10.tar.gz*, or *openmpi-5.0.5.tar.bz2*, then run this toolchain. All package will be detected and installed automatically. Also, one can install parts of packages OFFLINE and parts of packages ONLINE just by using this toolchain ```shell # for OFFLINE installation # in toolchain directory > mkdir build > cp ***.tar.gz build/ ``` The needed dependencies version default: - `cmake` 3.30.0 - `gcc` 13.2.0 (which will always NOT be installed, But use system) - `OpenMPI` 5.0.5 - `MPICH` 4.2.2 - `OpenBLAS` 0.3.27 (Intel toolchain need `get_vars.sh` tool from it) - `ScaLAPACK` 2.2.1 - `FFTW` 3.3.10 - `LibXC` 6.2.2 - `ELPA` 2024.03.001 - `CEREAL` 1.3.2 - `RapidJSON` 1.1.0 And Intel-oneAPI need user or server manager to manually install from Intel. [Intel-oneAPI](https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/toolkits.html) Dependencies below are optional, which is NOT installed by default: - `LibTorch` 2.1.2 - `Libnpy` 1.0.1 - `LibRI` 0.2.0 - `LibComm` 0.1.1 Users can install them by using `--with-*=install` in toolchain*.sh, which is `no` in default. > Notice: LibRI, LibComm and Libnpy is on actively development, you should check-out the package version when using this toolchain. Also, LibRI and LibComm can be installed by github submodule, that is also work for libnpy, which is more recommended. Users can easily compile and install dependencies of ABACUS by running these scripts after loading `gcc` or `intel-mkl-mpi` environment. The toolchain installation process can be interrupted at anytime. just re-run *toolchain_\*.sh*, toolchain itself may fix it If compliation is successful, a message will be shown like this: ```shell > Done! > To use the installed tools and libraries and ABACUS version > compiled with it you will first need to execute at the prompt: > source ./install/setup > To build ABACUS by gnu-toolchain, just use: > ./build_abacus_gnu.sh > To build ABACUS by intel-toolchain, just use: > ./build_abacus_intel.sh > or you can modify the builder scripts to suit your needs. ``` You can run *build_abacus_gnu.sh* or *build_abacus_intel.sh* to build ABACUS by gnu-toolchain or intel-toolchain respectively, the builder scripts will automatically locate the environment and compile ABACUS. You can manually change the builder scripts to suit your needs. The builder scripts will generate `abacus_env.sh` for source Then, after `source abacus_env.sh`, one can easily run builder scripts to build ABACUS binary software. If users want to use toolchain but lack of some system library dependencies, *install_requirements.sh* scripts will help. If users want to re-install all the package, just do: ```shell > rm -rf install ``` or you can also do it in a more completely way: ```shell > rm -rf install build/*/* build/OpenBLAS*/ build/setup_* ``` ## Common Problems and Solutions ### LibRI and LibComm for EXX - GCC toolchain with OpenMPI cannot compile LibComm v0.1.1 due to the different MPI variable type from MPICH and IntelMPI, see discussion here [#5033](https://github.com/deepmodeling/abacus-develop/issues/5033), you can switch to GCC-MPICH or Intel toolchain - It is recommended to use Intel toolchain if one wants to include EXX feature in ABACUS, which can have much better performance and can use more than 16 threads in OpenMP parallelization to accelerate the EXX process. ### GPU version of ABACUS For GPU version of ABACUS (do not GPU version installer of ELPA, which is still doing work), add following options in build*.sh: ```shell cmake -B $BUILD_DIR -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DCMAKE_CXX_COMPILER=icpx \ -DMPI_CXX_COMPILER=mpiicpc \ ...... -DUSE_CUDA=1 \ -DCMAKE_CUDA_COMPILER=${path to cuda toolkit}/bin/nvcc \ ...... ``` Notice: You CANNOT use `icpx` compiler for GPU version of ABACUS for now, see discussion here [#2906](https://github.com/deepmodeling/abacus-develop/issues/2906) and [#4976](https://github.com/deepmodeling/abacus-develop/issues/4976) ### Shell problem If you encounter problem like: ```shell /bin/bash^M: bad interpreter: No such file or directory ``` or `permission denied` problem, you can simply run: ```shell ./pre_set.sh ``` And also, you can fix `permission denied` problem via `chmod +x` if *pre_set.sh* have no execution permission; if the *pre_set.sh* also have `/bin/bash^M` problem, you can run: ```shell > dos2unix pre_set.sh ``` to fix it ### Libtorch and DeePKS problem If deepks feature have problem, you can manually change libtorch version from 2.1.2 to 2.0.1 or 1.12.0 in `toolchain/scripts/stage4/install_libtorch.sh`. Also, you can install ABACUS without deepks by removing all the deepks and related options. NOTICE: if you want deepks feature, your intel-mkl environment should be accessible in building process. you can check it in `build_abacus_gnu.sh` ### DeePMD feature problem When you encounter problem like `GLIBCXX_3.4.29 not found`, it is sure that your `gcc` version is lower than the requirement of `libdeepmd`. After my test, you need `gcc`>11.3.1 to enable deepmd feature in ABACUS. ### ELPA problem via Intel-oneAPI toolchain in AMD server The default compiler for Intel-oneAPI is `icpx` and `icx`, which will cause problem when compling ELPA in AMD server. (Which is a problem and needed to have more check-out) The best way is to change `icpx` to `icpc`, `icx` to `icc`. user can manually change it in toolchain*.sh via `--with-intel-classic=yes` Notice: `icc` and `icpc` from Intel Classic Compiler of Intel-oneAPI is not supported for 2024.0 and newer version. And Intel-OneAPI 2023.2.0 can be found in website. See discussion here [#4976](https://github.com/deepmodeling/abacus-develop/issues/4976) ### Intel-oneAPI problem Sometimes Intel-oneAPI have problem to link `mpirun`, which will always show in 2023.2.0 version of MPI in Intel-oneAPI. Try `source /path/to/setvars.sh` or install another version of IntelMPI may help. which is fixed in 2024.0.0 version of Intel-oneAPI, And will not occur in Intel-MPI before 2021.10.0 (Intel-oneAPI before 2023.2.0) More problem and possible solution can be accessed via [#2928](https://github.com/deepmodeling/abacus-develop/issues/2928) ## Advanced Installation Usage 1. Users can move toolchain directory to anywhere you like, and complete installation by change the setting in `toolchain_*.sh` and `build_*.sh` by your own setting. By moving toolchain out or rename it ,one can make toolchain independent from ABACUS repo, make dependencies package more independent and flexible. 2. Users can manually change `pkg_install_dir` variable in `scripts/stage*/install*` to change the installation directory of each packages, which may let the installation more fiexible. ## More More infomation can be read from `Details.md`.
接下来我们尝试从零开始安装ABACUS。
3. 基于intel-OneAPI的ABACUS快速安装
调用工具链脚本流的主脚本是install_abacus_toolchain.sh,直接运行此脚本即可基于已有的环境变量,完成ABACUS依赖环境的安装和相关依赖包的链接。此脚本可以有一系列的参数设置。在toolchain文件夹中提供了三种工具链的快速安装,分别为intel
,intel-mpich
和gnu
。
在intel的cpu上,以intel-OneAPI为代表的intel编译器,数学库和MPI库是非常适配的,基于已有的intel-OneAPI配置环境也是最简单快速的,因此本notebook以此工具链为例进行ABACUS的从零开始快速安装。基于GCC和开源编译器+数学库的gcc-toolchain的安装思路是类似的。
3.1 编译依赖环境
首先我们要加载intel-OneAPI环境,在服务器和个人主机上,一般可以通过source
或者module load
两种方式加载。在bohrium notebook环境下载入环境变量较为困难,本文将采用一些特殊的方式加载这些环境变量
然后,运行toolchain_intel.sh脚本,采用intel-OneAPI toolchain 一键安装ABACUS的依赖环境。此处采用icc
,icpc
和mpiicpc
作为编译器,mkl
作为数学库,mpi
作为MPI库,并另外安装cmake
作为构建工具。
我们可以先看看这个脚本的设置方法
#!/bin/bash #SBATCH -J install #SBATCH -N 1 #SBATCH -n 16 #SBATCH -o compile.log #SBATCH -e compile.err # JamesMisaka in 2023-08-31 # install abacus dependency by intel-toolchain # use mkl and intelmpi # but mpich and openmpi can also be tried # libtorch and libnpy are for deepks support, which can be =no # module load mkl mpi compiler ./install_abacus_toolchain.sh \ --with-intel=system --math-mode=mkl \ --with-gcc=no --with-intelmpi=system \ --with-cmake=install \ --with-scalapack=no \ --with-libxc=install \ --with-fftw=no \ --with-elpa=install \ --with-cereal=install \ --with-rapidjson=install \ --with-libtorch=no \ --with-libnpy=no \ --with-libri=no \ --with-libcomm=no \ --with-intel-classic=no \ | tee compile.log # if you are using AMD server: set --with-intel-classic=yes
当前的toolchain在intel-toolchain方面采用icpx和mpiicpc作为编译器,是一种比较折中的做法。需要注意在AMD-CPU上,这样的做法会导致ELPA编译不上(暂时未解决),故若在AMD服务器上运行toolchain脚本安装依赖环境,需要调整参数--with-intel-classic=yes
采用更为保守的icpc作为编译器。
注:Intel-OneAPI-2024.0之后已经取消对icpc和icc的支持,可以手动下载较老版本的Intel-OneAPI, 下载地址:
- Intel oneAPI Base Toolkit: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/992857b9-624c-45de-9701-f6445d845359/l_BaseKit_p_2023.2.0.49397_offline.sh
- HPC Toolkit: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0722521a-34b5-4c41-af3f-d5d14e88248d/l_HPCKit_p_2023.2.0.49440_offline.sh
toolchain系列脚本将自动识别build
文件夹内有没有所需要的软件压缩包,如果没有,会自动下载。同时,这些脚本将抓取各环境变量和硬件信息(基于OpenBLAS的一些脚本),采用最适合该机器的编译方案进行配置编译。
这一过程因网络环境与在线/离线安装方式,以及安装包需求等均有关系。一般需要5-10分钟。脚本内默认关闭了对deepks,libri等自选依赖库的支持,在大部分时候这些库都是可以直接装上的,不过存在服务器自身硬件、环境的版本过低或是兼容性等导致的安装问题。用户可以将相关选项在脚本内自行打开。下面我们将这些选项都打开操作
在toolchain_.sh*脚本内,各个依赖库安装有三个可选项
- install 利用toolchain进行库的下载和安装。如果对应的下载安装已经完成,则相关库的安装会被跳过
- system 利用系统中已有的库。这些库需要能在环境变量中被识别到
- no 不下载安装对应的依赖库
下面我们把与DeePKS和LibRI依赖相关的库的选项都调成install,并写入到toolchain_intel.sh文件中
Overwriting toolchain_intel.sh
运行该脚本,并在运行同时加载好Intel-OneAPI环境,即可自动下载和安装ABACUS所需的依赖库
:: initializing oneAPI environment ... dash: SH_VERSION = unknown args: Using "$@" for setvars.sh arguments: :: compiler -- latest :: debugger -- latest :: dev-utilities -- latest :: mkl -- latest :: mpi -- latest :: tbb -- latest :: vtune -- latest :: oneAPI environment initialized :: MPI is detected and it appears to be Intel MPI Using MKL, so openblas is disabled. Compiling with 2 processes for target native. Step gcc took 0.00 seconds. ==================== Finding Intel compiler from system paths ==================== path to icx is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icx path to icpx is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icpx path to ifort is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/intel64/ifort CC is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icx CXX is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icpx FC is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/intel64/ifort Step intel took 0.00 seconds. ==================== Getting proc arch info using OpenBLAS tools ==================== wget https://www.cp2k.org/static/downloads/OpenBLAS-0.3.27.tar.gz --2024-09-20 18:00:55-- https://www.cp2k.org/static/downloads/OpenBLAS-0.3.27.tar.gz Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.37, 10.255.254.7, 10.255.254.18 Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.37|:8118... connected. Proxy request sent, awaiting response... 200 OK Length: 24493704 (23M) [application/x-gzip] Saving to: ‘OpenBLAS-0.3.27.tar.gz’ OpenBLAS-0.3.27.tar 100%[===================>] 23.36M 3.69MB/s in 7.9s 2024-09-20 18:01:04 (2.97 MB/s) - ‘OpenBLAS-0.3.27.tar.gz’ saved [24493704/24493704] OpenBLAS-0.3.27.tar.gz: OK Checksum of OpenBLAS-0.3.27.tar.gz Ok ./f_check: 100: [: Illegal number: # mark_description OpenBLAS detected LIBCORE = skylakex OpenBLAS detected ARCH = x86_64 ==================== Installing CMake ==================== wget https://www.cp2k.org/static/downloads/cmake-3.30.0-linux-x86_64.sh --2024-09-20 18:01:09-- https://www.cp2k.org/static/downloads/cmake-3.30.0-linux-x86_64.sh Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.7, 10.255.254.18, 10.255.254.37 Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.7|:8118... connected. Proxy request sent, awaiting response... 200 OK Length: 53639415 (51M) [text/x-sh] Saving to: ‘cmake-3.30.0-linux-x86_64.sh’ cmake-3.30.0-linux- 100%[===================>] 51.15M 2.64MB/s in 19s 2024-09-20 18:01:28 (2.73 MB/s) - ‘cmake-3.30.0-linux-x86_64.sh’ saved [53639415/53639415] cmake-3.30.0-linux-x86_64.sh: OK Checksum of cmake-3.30.0-linux-x86_64.sh Ok Installing from scratch into /opt/abacus-develop/toolchain/install/cmake-3.30.0 Step cmake took 21.00 seconds. ==================== Finding Intel MPI from system paths ==================== path to mpiexec is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiexec path to mpiicc is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicc path to mpiicpc is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicpc path to mpiifort is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiifort Found lib directory /opt/intel/oneapi/mpi/2021.5.1/lib/release libmpi is found in ld search path libmpicxx is found in ld search path I_MPI_CXX is icpx I_MPI_CC is icx I_MPI_FC is ifort MPICXX is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicpc MPICC is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicc MPIFC is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiifort Step intelmpi took 0.00 seconds. ==================== Finding MKL from system paths ==================== MKLROOT is found to be /opt/intel/oneapi/mkl/2022.0.2 libm is found in ld search path libdl is found in ld search path Step mkl took 0.00 seconds. ==================== Installing LIBXC ==================== wget https://www.cp2k.org/static/downloads/libxc-6.2.2.tar.gz --2024-09-20 18:01:30-- https://www.cp2k.org/static/downloads/libxc-6.2.2.tar.gz Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.18, 10.255.254.7, 10.255.254.37 Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.18|:8118... connected. Proxy request sent, awaiting response... 200 OK Length: 64297852 (61M) [application/x-gzip] Saving to: ‘libxc-6.2.2.tar.gz’ libxc-6.2.2.tar.gz 100%[===================>] 61.32M 24.1KB/s in 50m 40s 2024-09-20 18:52:12 (20.7 KB/s) - ‘libxc-6.2.2.tar.gz’ saved [64297852/64297852] libxc-6.2.2.tar.gz: OK Checksum of libxc-6.2.2.tar.gz Ok Installing from scratch into /opt/abacus-develop/toolchain/install/libxc-6.2.2
会有用户疑惑这个过程为什么要下载OpenBLAS, 明明Intel-toolchain内用不到这一数学库。其实只是因为Toolchain需要应用OpenBLAS包里面的脚本来抓取服务器硬件环境。
依赖环境编译完成之后,我们可以在install
文件夹中看到编译好的依赖库和可执行文件。基于这些依赖库,我们可以进行ABACUS的编译安装。
cereal-1.3.2 elpa-2023.05.001 lsan.supp toolchain.conf tsan.supp cmake-3.28.1 libxc-6.2.2 setup toolchain.env valgrind.supp
3.2 编译ABACUS
编译ABACUS的方法参考ABACUS-Installation-Options。在toolchain脚本集中提供了基于此文档的和intel-toolchain的一键编译脚本build_abacus_intel.sh。直接运行此脚本可以完成ABACUS的编译
我们可以先看看这个脚本的设置方法
#!/bin/bash #SBATCH -J build #SBATCH -N 1 #SBATCH -n 16 #SBATCH -o install.log #SBATCH -e install.err # install ABACUS with libxc and deepks # JamesMisaka in 2023.08.22 # Build ABACUS by intel-toolchain # module load mkl compiler mpi # source path/to/vars.sh ABACUS_DIR=.. TOOL=$(pwd) INSTALL_DIR=$TOOL/install source $INSTALL_DIR/setup cd $ABACUS_DIR ABACUS_DIR=$(pwd) BUILD_DIR=build_abacus_intel rm -rf $BUILD_DIR PREFIX=$ABACUS_DIR ELPA=$INSTALL_DIR/elpa-2023.05.001/cpu CEREAL=$INSTALL_DIR/cereal-1.3.2/include/cereal LIBXC=$INSTALL_DIR/libxc-6.2.2 # LIBTORCH=$INSTALL_DIR/libtorch-2.0.1/share/cmake/Torch # LIBNPY=$INSTALL_DIR/libnpy-1.0.1/include # LIBRI=$INSTALL_DIR/LibRI-0.1.1 # LIBCOMM=$INSTALL_DIR/LibComm-0.1.0 # DEEPMD=$HOME/apps/anaconda3/envs/deepmd # if use deepks and deepmd cmake -B $BUILD_DIR -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DCMAKE_CXX_COMPILER=icpx \ -DMPI_CXX_COMPILER=mpiicpc \ -DMKLROOT=$MKLROOT \ -DELPA_DIR=$ELPA \ -DCEREAL_INCLUDE_DIR=$CEREAL \ -DLibxc_DIR=$LIBXC \ -DENABLE_LCAO=ON \ -DENABLE_LIBXC=ON \ -DUSE_OPENMP=ON \ -DUSE_ELPA=ON \ # -DENABLE_DEEPKS=1 \ # -DTorch_DIR=$LIBTORCH \ # -Dlibnpy_INCLUDE_DIR=$LIBNPY \ # -DENABLE_LIBRI=ON \ # -DLIBRI_DIR=$LIBRI \ # -DLIBCOMM_DIR=$LIBCOMM \ # -DDeePMD_DIR=$DEEPMD \ # -DTensorFlow_DIR=$DEEPMD \ # -DENABLE_RAPIDJSON=ON \ cmake --build $BUILD_DIR -j `nproc` cmake --install $BUILD_DIR 2>/dev/null # if one want's to include deepmd, your gcc version should be >= 11.3.0 # generate abacus_env.sh cat << EOF > "${TOOL}/abacus_env.sh" source $INSTALL_DIR/setup export PATH="${PREFIX}/bin":\${PATH} EOF
该脚本本质上只做了三件事情
- 加载通过toolchain安装的相关依赖库:通过
source install/setup
加载toolchain安装过程中自动生成的环境变量,同时通过固定路径进一步指定所需库的位置(这二者确实有点重复,但对于开箱即用来说是更好的) - 通过CMake进行ABACUS的编译安装,包括configure(-B部分),build和install
- 在toolchain目录下生成abacus_env.sh,该脚本会自动加载toolchain安装的依赖环境(在install/setup中),并将ABACUS执行文件加入到环境变量
基于正常运行完成的toolchain_intel.sh配置好的环境,直接运行build_abacus_intel.sh即可完成ABACUS的编译,此ABACUS支持LCAO基组,但未默认支持DEEPKS和LibRI特性,如果需要可通过如下办法支持:
- 打开toolchain_intel.sh中的libtorch, libnpy, libri, libcomm选项,如
--with-libtorch=install
- 打开build_abacus_intel.sh中的相关选项,即去掉对应特性设置前面的注释
该过程一般需要5分钟。执行完该过程后,用户可删除build文件夹,以减少ABACUS依赖的占用。
:: initializing oneAPI environment ... dash: SH_VERSION = unknown args: Using "$@" for setvars.sh arguments: :: compiler -- latest :: debugger -- latest :: dev-utilities -- latest :: mkl -- latest :: mpi -- latest :: tbb -- latest :: vtune -- latest :: oneAPI environment initialized :: -- The CXX compiler identification is IntelLLVM 2022.0.0 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icpx - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Git: /usr/bin/git (found version "2.34.1") -- Found git: attempting to get commit info... -- Current commit hash: 12b319e0e -- Last commit date: Mon Mar 18 12:19:34 2024 +0800 -- Found Cereal: /opt/abacus-develop/toolchain/install/cereal-1.3.2/include/cereal -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) ELPA : We need pkg-config to get all information about the elpa library -- Found ELPA: /opt/abacus-develop/toolchain/install/elpa-2023.05.001/cpu/lib/libelpa_openmp.so -- Performing Test ELPA_VERSION_SATISFIES -- Performing Test ELPA_VERSION_SATISFIES - Success -- Found MPI_CXX: /opt/intel/oneapi/mpi/2021.5.1/lib/libmpicxx.so (found version "3.1") -- Found MPI: TRUE (found version "3.1") -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Found OpenMP_CXX: -fiopenmp (found version "5.0") -- Found OpenMP: TRUE (found version "5.0") -- Looking for a CUDA compiler -- Looking for a CUDA compiler - NOTFOUND -- Found IntelMKL: /opt/intel/oneapi/mkl/2022.0.2/lib/intel64/libmkl_intel_lp64.so -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Found Libxc: version 6.2.2 -- Configuring done (1.4s) -- Generating done (0.1s) -- Build files have been written to: /opt/abacus-develop/build_abacus_intel [ 0%] Building CXX object source/module_cell/module_symmetry/CMakeFiles/symmetry.dir/symm_other.cpp.o [ 1%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/base/core/refcount.cpp.o [ 1%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_driver.cpp.o [ 1%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate.cpp.o [ 1%] Building CXX object source/module_base/CMakeFiles/base.dir/assoc_laguerre.cpp.o [ 2%] Building CXX object source/module_hamilt_general/CMakeFiles/hamilt_general.dir/operator.cpp.o [ 3%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/nonlocal_op.cpp.o [ 3%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer.cpp.o [ 3%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_adjacent_set.cpp.o [ 4%] Building CXX object source/CMakeFiles/driver.dir/driver.cpp.o [ 4%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd2_parameters.cpp.o [ 4%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/surchem.cpp.o [ 4%] Building CXX object source/module_psi/CMakeFiles/psi.dir/psi.cpp.o [ 5%] Building CXX object source/module_cell/CMakeFiles/cell.dir/atom_pseudo.cpp.o [ 5%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional.cpp.o [ 6%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/hamilt_pw.cpp.o [ 6%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/base/core/cpu_allocator.cpp.o [ 6%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/veff_op.cpp.o [ 6%] Building CXX object source/module_base/CMakeFiles/base.dir/clebsch_gordan_coeff.cpp.o [ 6%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_atom.cpp.o [ 7%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_vxc.cpp.o [ 7%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/ops/einsum_op.cpp.o [ 7%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/ekinetic_op.cpp.o [ 7%] Built target psi [ 7%] Building CXX object source/module_cell/module_symmetry/CMakeFiles/symmetry.dir/symmetry_basic.cpp.o [ 8%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_tf.cpp.o [ 8%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_getters.cpp.o [ 8%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_atom_arrange.cpp.o [ 8%] Building CXX object source/CMakeFiles/driver.dir/driver_run.cpp.o [ 8%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/meta_op.cpp.o [ 8%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_new/relax.cpp.o [ 8%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/ekinetic_pw.cpp.o [ 8%] Building CXX object source/module_cell/CMakeFiles/cell.dir/atom_spec.cpp.o [ 9%] Building CXX object source/module_base/CMakeFiles/base.dir/complexarray.cpp.o [ 9%] Building CXX object source/CMakeFiles/device.dir/module_basis/module_pw/kernels/pw_op.cpp.o [ 9%] Building CXX object source/module_hamilt_general/CMakeFiles/hamilt_general.dir/module_ewald/H_Ewald_pw.cpp.o [ 9%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/veff_pw.cpp.o [ 9%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd3_parameters_tab.cpp.o [ 9%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_vw.cpp.o [ 9%] Built target driver [ 9%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_wt.cpp.o [ 10%] Building CXX object source/CMakeFiles/device.dir/module_hsolver/kernels/dngvd_op.cpp.o [ 10%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_energy_terms.cpp.o [ 11%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_atom_input.cpp.o [ 11%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_grid.cpp.o [ 11%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_random.cpp.o [ 12%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_new/line_search.cpp.o [ 12%] Building CXX object source/module_cell/module_symmetry/CMakeFiles/symmetry.dir/symmetry.cpp.o [ 12%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_gradcorr.cpp.o [ 12%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/relax_old.cpp.o [ 12%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/nonlocal_pw.cpp.o [ 12%] Building CXX object source/module_base/CMakeFiles/base.dir/complexmatrix.cpp.o [ 12%] Building CXX object source/module_cell/CMakeFiles/cell.dir/pseudo.cpp.o [ 12%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_grid_driver.cpp.o [ 12%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp.cpp.o [ 12%] Building CXX object source/module_hamilt_general/CMakeFiles/hamilt_general.dir/module_ewald/dnrm2.cpp.o [ 13%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_energy.cpp.o [ 13%] Building CXX object source/CMakeFiles/device.dir/module_hsolver/kernels/math_kernel_op.cpp.o [ 14%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd3_parameters.cpp.o [ 14%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_lkt.cpp.o [ 14%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_atomic.cpp.o [ 14%] Built target hamilt_general [ 14%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/bfgs_basic.cpp.o [ 15%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_iter.cpp.o [ 15%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_upf100.cpp.o [ 15%] Building CXX object source/module_base/CMakeFiles/base.dir/element_basis_index.cpp.o [ 15%] Built target neighbor [ 15%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/hamilt_lcao.cpp.o [ 15%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/meta_pw.cpp.o [ 16%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/evolve_elec.cpp.o [ 16%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/of_stress_pw.cpp.o [ 16%] Building CXX object source/module_base/CMakeFiles/base.dir/export.cpp.o [ 16%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_basic.cpp.o [ 16%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_exx.cpp.o [ 16%] Building CXX object source/CMakeFiles/device.dir/module_elecstate/kernels/elecstate_op.cpp.o [ 16%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/evolve_psi.cpp.o [ 16%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_bfgs.cpp.o [ 16%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_wrapper_xc.cpp.o [ 16%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_hchi.cpp.o [ 16%] Building CXX object source/module_base/CMakeFiles/base.dir/inverse_matrix.cpp.o [ 16%] Built target symmetry [ 16%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu.cpp.o [ 16%] Building CXX object source/CMakeFiles/device.dir/module_psi/kernels/psi_memory_op.cpp.o [ 16%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_print.cpp.o [ 16%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_wrapper_gcxc.cpp.o [ 16%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/bandenergy.cpp.o [ 16%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/operator_lcao.cpp.o [ 16%] Built target hamilt_ofdft [ 17%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/veff_lcao.cpp.o [ 18%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_upf201.cpp.o [ 18%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/H_correction_pw.cpp.o [ 19%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_cg.cpp.o [ 20%] Building CXX object source/module_base/CMakeFiles/base.dir/gather_math_lib_info.cpp.o [ 20%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_wf.cpp.o [ 20%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/ops/linalg_op.cpp.o [ 20%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_epsilon.cpp.o [ 20%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd2.cpp.o [ 20%] Building CXX object source/module_base/CMakeFiles/base.dir/global_file.cpp.o [ 20%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_wrapper_tauxc.cpp.o [ 20%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor.cpp.o [ 20%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_blps.cpp.o [ 20%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_sd.cpp.o [ 20%] Building CXX object source/CMakeFiles/device.dir/module_psi/kernels/device.cpp.o [ 21%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/velocity_pw.cpp.o [ 21%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_func.cpp.o [ 21%] Building CXX object source/module_base/CMakeFiles/base.dir/global_function.cpp.o [ 22%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_exch_lda.cpp.o [ 23%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/force_op.cpp.o [ 23%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_corr_lda.cpp.o [ 23%] Building CXX object source/module_base/CMakeFiles/base.dir/global_function_ddotreal.cpp.o [ 23%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_forces.cpp.o [ 23%] Building CXX object source/module_base/CMakeFiles/base.dir/global_variable.cpp.o [ 23%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd3.cpp.o [ 24%] Building CXX object source/module_base/CMakeFiles/base.dir/intarray.cpp.o [ 24%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_force.cpp.o [ 24%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_exch_gga.cpp.o [ 24%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/operator_pw.cpp.o [ 24%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/middle_hamilt.cpp.o [ 25%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/norm_psi.cpp.o [ 25%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_corr_gga.cpp.o [ 25%] Building CXX object source/module_base/CMakeFiles/base.dir/math_integral.cpp.o [ 25%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/stress_op.cpp.o [ 26%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_hcth.cpp.o [ 26%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_methods.cpp.o [ 27%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_buffer.cpp.o [ 27%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_yukawa.cpp.o [ 27%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/forces.cpp.o [ 27%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/propagator.cpp.o [ 28%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_atomic_random.cpp.o [ 28%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/meta_lcao.cpp.o [ 28%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_pw.cpp.o [ 28%] Built target xc_ [ 28%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/base_matrix.cpp.o [ 28%] Building CXX object source/module_base/CMakeFiles/base.dir/math_lebedev_laikov.cpp.o [ 28%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/lattice_change_basic.cpp.o [ 28%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_map.cpp.o [ 28%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/op_dftu_lcao.cpp.o [ 29%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_folding.cpp.o [ 29%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/wf_op.cpp.o [ 30%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_pseudo.cpp.o [ 30%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_shape.cpp.o [ 30%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/vnl_op.cpp.o [ 30%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_types.cpp.o [ 30%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_io.cpp.o [ 31%] Building CXX object source/CMakeFiles/device.dir/module_base/kernels/math_op.cpp.o [ 31%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/atom_pair.cpp.o [ 32%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_stress_pw.cpp.o [ 32%] Building CXX object source/module_base/CMakeFiles/base.dir/math_polyint.cpp.o [ 32%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdw.cpp.o [ 32%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_vwr.cpp.o [ 32%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/blas.cpp.o [ 32%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/deepks_lcao.cpp.o [ 32%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_nao.cpp.o [ 33%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/lattice_change_cg.cpp.o [ 33%] Building CXX object source/module_base/CMakeFiles/base.dir/math_sphbes.cpp.o [ 33%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_pw_sdft.cpp.o [ 33%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/upsi.cpp.o [ 34%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/gatefield.cpp.o [ 34%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_tools.cpp.o [ 34%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_general/module_xc/kernels/xc_functional_op.cpp.o [ 35%] Building CXX object source/module_base/CMakeFiles/base.dir/math_ylmreal.cpp.o [ 35%] Built target tddft [ 35%] Building CXX object source/module_base/CMakeFiles/base.dir/math_bspline.cpp.o [ 35%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/spin_constrain.cpp.o [ 36%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/lapack.cpp.o [ 36%] Built target device [ 36%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/linalg.cpp.o [ 36%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_totn.cpp.o [ 36%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/op_exx_lcao.cpp.o [ 37%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/overlap_new.cpp.o [ 37%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/lattice_change_methods.cpp.o [ 37%] Building CXX object source/module_cell/CMakeFiles/cell.dir/unitcell.cpp.o [ 37%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_occup.cpp.o [ 37%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diagh_consts.cpp.o [ 37%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/forces_us.cpp.o [ 37%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_vcav.cpp.o [ 37%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/sc_parse_json.cpp.o [ 37%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/memory_impl.cpp.o [ 38%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_cg.cpp.o [ 38%] Building CXX object source/module_base/CMakeFiles/base.dir/math_chebyshev.cpp.o [ 38%] Built target vdw [ 38%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/elpa_new.cpp.o [ 38%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/efield.cpp.o [ 38%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_hamilt.cpp.o [ 38%] Building CXX object source/module_base/CMakeFiles/base.dir/mathzone_add1.cpp.o [ 39%] Building CXX object source/module_base/CMakeFiles/base.dir/matrix.cpp.o [ 39%] Built target container [ 39%] Building CXX object source/module_base/CMakeFiles/base.dir/matrix3.cpp.o [ 39%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_cc.cpp.o [ 39%] Built target relax [ 40%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_ewa.cpp.o [ 40%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/hcontainer.cpp.o [ 40%] Built target hamilt_stodft [ 41%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/output_hcontainer.cpp.o [ 41%] Built target dftu [ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_atomic.cpp.o [ 41%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/ekinetic_new.cpp.o [ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_atomic_lm.cpp.o [ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_control.cpp.o [ 41%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_vel.cpp.o [ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_gaunt_table.cpp.o [ 41%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_david.cpp.o [ 41%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_bpcg.cpp.o [ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_gen_tables.cpp.o [ 42%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_nao_random.cpp.o [ 42%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_gga.cpp.o [ 42%] Building CXX object source/module_base/CMakeFiles/base.dir/memory.cpp.o [ 42%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/corrected_energy.cpp.o [ 42%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/H_Hartree_pw.cpp.o [ 42%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/pot_xc.cpp.o [ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_nonlocal.cpp.o [ 42%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/func_folding.cpp.o [ 42%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_mgga.cpp.o [ 42%] Built target psi_initializer [ 42%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/numerical_radial.cpp.o [ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_nonlocal_lm.cpp.o [ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_read.cpp.o [ 42%] Building CXX object source/module_base/CMakeFiles/base.dir/mymath.cpp.o [ 42%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/nonlocal_new.cpp.o [ 42%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/td_ekinetic_lcao.cpp.o [ 42%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/hsolver_pw.cpp.o [ 42%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/hsolver_pw_sdft.cpp.o [ 42%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/radial_set.cpp.o [ 43%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/pot_local.cpp.o [ 44%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/minimize_cg.cpp.o [ 44%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/elpa_new_real.cpp.o [ 44%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/transfer.cpp.o [ 45%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_iter_assist.cpp.o [ 45%] Building CXX object source/module_base/CMakeFiles/base.dir/opt_CG.cpp.o [ 45%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_har.cpp.o [ 45%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/pot_local_paw.cpp.o [ 45%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_kin.cpp.o [ 46%] Building CXX object source/module_base/CMakeFiles/base.dir/opt_DCsrch.cpp.o [ 46%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/hsolver_lcao.cpp.o [ 47%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_h_lambda.cpp.o [ 48%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_loc.cpp.o [ 48%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_nl.cpp.o [ 48%] Building CXX object source/module_base/CMakeFiles/base.dir/realarray.cpp.o [ 48%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/potential_new.cpp.o [ 48%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_table_alpha.cpp.o [ 48%] Building CXX object source/module_base/CMakeFiles/base.dir/sph_bessel_recursive-d1.cpp.o [ 48%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_atoms.cpp.o [ 48%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/elpa_new_complex.cpp.o [ 49%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_cell_pseudopots.cpp.o [ 49%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/func_transfer.cpp.o [ 50%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/atomic_radials.cpp.o [ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_table_beta.cpp.o [ 51%] Building CXX object source/module_base/CMakeFiles/base.dir/sph_bessel_recursive-d2.cpp.o [ 51%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/potential_types.cpp.o [ 51%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/sol_force.cpp.o [ 51%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge.cpp.o [ 51%] Building CXX object source/module_base/CMakeFiles/base.dir/timer.cpp.o [ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_table_phi.cpp.o [ 51%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_blas.cpp.o [ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/parallel_2d.cpp.o [ 51%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/init_sc.cpp.o [ 51%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/td_nonlocal_lcao.cpp.o [ 51%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/utils.cpp.o [ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/beta_radials.cpp.o [ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/parallel_orbitals.cpp.o [ 51%] Built target genelpa [ 51%] Building CXX object source/module_md/CMakeFiles/md.dir/fire.cpp.o [ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/sphbes_radials.cpp.o [ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/hydrogen_radials.cpp.o [ 51%] Built target hcontainer [ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/pswfc_radials.cpp.o [ 52%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/radial_collection.cpp.o [ 52%] Built target surchem [ 52%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/real_gaunt_table.cpp.o [ 52%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_mw_helper.cpp.o [ 52%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/two_center_table.cpp.o [ 52%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_elpa.cpp.o [ 53%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/sc_lambda_lcao.cpp.o [ 54%] Building CXX object source/module_base/CMakeFiles/base.dir/tool_check.cpp.o [ 55%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_init.cpp.o [ 55%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/two_center_integrator.cpp.o [ 56%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/two_center_bundle.cpp.o [ 56%] Building CXX object source/module_base/CMakeFiles/base.dir/tool_quit.cpp.o [ 56%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_mw.cpp.o [ 56%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_us.cpp.o [ 56%] Built target hsolver [ 57%] Building CXX object source/module_md/CMakeFiles/md.dir/langevin.cpp.o [ 57%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/fft.cpp.o [ 57%] Built target orb [ 58%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver.cpp.o [ 58%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/projgen.cpp.o [ 58%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/dftu_new.cpp.o [ 58%] Building CXX object source/module_cell/CMakeFiles/cell.dir/setup_nonlocal.cpp.o [ 58%] Building CXX object source/module_cell/CMakeFiles/cell.dir/klist.cpp.o [ 58%] Building CXX object source/module_base/CMakeFiles/base.dir/tool_title.cpp.o [ 58%] Building CXX object source/module_base/CMakeFiles/base.dir/ylm.cpp.o [ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_basis.cpp.o [ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_basis_k.cpp.o [ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_basis_sup.cpp.o [ 59%] Building CXX object source/module_base/CMakeFiles/base.dir/abfs-vector3_order.cpp.o [ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributeg.cpp.o [ 60%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributeg_method1.cpp.o [ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/md_base.cpp.o [ 60%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_pw.cpp.o [ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/md_func.cpp.o [ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/msst.cpp.o [ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/nhchain.cpp.o [ 60%] Building CXX object source/module_cell/CMakeFiles/cell.dir/parallel_kpoints.cpp.o [ 60%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributeg_method2.cpp.o [ 61%] Building CXX object source/module_md/CMakeFiles/md.dir/run_md.cpp.o [ 61%] Building CXX object source/module_md/CMakeFiles/md.dir/verlet.cpp.o [ 61%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_mpi.cpp.o [ 61%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributer.cpp.o [ 62%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/basic_funcs.cpp.o [ 62%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_STRESS.cpp.o [ 62%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_extra.cpp.o [ 62%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_mixing.cpp.o [ 62%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/symmetry_rho.cpp.o [ 63%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/VL_in_pw.cpp.o [ 63%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks.cpp.o [ 63%] Built target md [ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint.cpp.o [ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_gamma.cpp.o [ 64%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_init.cpp.o [ 64%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma.cpp.o [ 64%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_transform.cpp.o [ 64%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/VNL_in_pw.cpp.o [ 64%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/lambda_loop_helper.cpp.o [ 64%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/VNL_grad_pw.cpp.o [ 64%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_fp.cpp.o [ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_gamma_env.cpp.o /opt/abacus-develop/source/module_elecstate/module_charge/charge_mixing.cpp:507:17: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value] if (abs(norm) < 1e-10) continue; ^ /opt/abacus-develop/source/module_elecstate/module_charge/charge_mixing.cpp:507:17: note: use function 'std::abs' instead if (abs(norm) < 1e-10) continue; ^~~ std::abs [ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_gamma_vl.cpp.o [ 64%] Built target numerical_atomic_orbitals [ 64%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/input.cpp.o [ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_fvl.cpp.o [ 64%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/wavefunc.cpp.o [ 65%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma_edm.cpp.o [ 65%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma_tvnl.cpp.o [ 65%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma_vl.cpp.o [ 66%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_rho.cpp.o [ 66%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_pw.cpp.o [ 67%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_transform_k.cpp.o [ 67%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/lambda_loop.cpp.o [ 67%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_mw_from_lambda.cpp.o [ 67%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/template_helpers.cpp.o [ 67%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_k.cpp.o [ 67%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_gen_fixedH.cpp.o [ 68%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/symmetry_rhog.cpp.o [ 68%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/fp_energy.cpp.o [ 68%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_tau.cpp.o [ 68%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/magnetism.cpp.o [ 69%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_hamilt.cpp.o [ 69%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_matrix.cpp.o 1 warning generated. [ 69%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/occupy.cpp.o [ 69%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_lcao.cpp.o [ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_lcao_tddft.cpp.o [ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/H_TDDFT_pw.cpp.o [ 70%] Built target deltaspin [ 70%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/unk_overlap_pw.cpp.o [ 70%] Built target planewave [ 70%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_fmt.cpp.o [ 70%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_vl.cpp.o [ 70%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/wf_atomic.cpp.o [ 70%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_physfmt.cpp.o [ 70%] Built target cell [ 70%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_table.cpp.o [ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_dm/density_matrix.cpp.o [ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_dm/cal_dm_psi.cpp.o [ 71%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/berryphase.cpp.o [ 71%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90.cpp.o [ 71%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/input_conv.cpp.o [ 72%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_contextfmt.cpp.o [ 72%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_pw_tool.cpp.o [ 73%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/structure_factor.cpp.o [ 74%] Building CXX object source/module_base/CMakeFiles/base.dir/parallel_common.cpp.o [ 74%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/bessel_basis.cpp.o [ 74%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_nnr.cpp.o [ 74%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/record_adj.cpp.o [ 74%] Building CXX object source/module_base/CMakeFiles/base.dir/parallel_global.cpp.o [ 74%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90_pw.cpp.o [ 74%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_env.cpp.o [ 74%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_sparse.cpp.o [ 75%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_sdft_pw.cpp.o [ 75%] Built target elecstate [ 75%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/operator_pw.cpp.o [ 75%] Built target formatter [ 75%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/op_exx_lcao.cpp.o [ 75%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/cal_test.cpp.o [ 75%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/center2_orb-orb11.cpp.o [ 75%] Building CXX object source/module_base/CMakeFiles/base.dir/parallel_reduce.cpp.o [ 75%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/op_dftu_lcao.cpp.o [ 75%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/structure_factor_k.cpp.o [ 76%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/center2_orb-orb21.cpp.o [ 77%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/cal_dos.cpp.o [ 78%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/ekinetic_pw.cpp.o [ 78%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/veff_pw.cpp.o [ 78%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/nonlocal_pw.cpp.o [ 79%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_sparse1.cpp.o [ 79%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_pvpr.cpp.o [ 79%] Building CXX object source/module_base/CMakeFiles/base.dir/spherical_bessel_transformer.cpp.o [ 79%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/center2_orb-orb22.cpp.o [ 79%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/soc.cpp.o [ 79%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_sdft_pw_tool.cpp.o [ 79%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/meta_pw.cpp.o [ 79%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/meta_lcao.cpp.o [ 80%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/velocity_pw.cpp.o [ 80%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/DM_gamma.cpp.o [ 80%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/global.cpp.o [ 80%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/DM_gamma_2d_to_grid.cpp.o [ 80%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90_lcao_in_pw.cpp.o [ 81%] Building CXX object source/module_base/CMakeFiles/base.dir/cubic_spline.cpp.o [ 81%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_fmt.cpp.o [ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dos_pw.cpp.o [ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/nscf_band.cpp.o [ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_istate_info.cpp.o [ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/numerical_basis.cpp.o [ 82%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/numerical_descriptor.cpp.o [ 82%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output.cpp.o [ 82%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_pvdpr.cpp.o [ 82%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_tools.cpp.o [ 83%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/veff_lcao.cpp.o [ 83%] Built target operator_ks_pw [ 83%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/deepks_lcao.cpp.o [ 83%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/DM_k.cpp.o [ 83%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/print_info.cpp.o [ 84%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/local_orbital_charge.cpp.o [ 84%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/parallel_grid.cpp.o [ 84%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_bigcell.cpp.o [ 85%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_meshball.cpp.o [ 85%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_meshcell.cpp.o [ 85%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_cube.cpp.o [ 85%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/overlap_new.cpp.o [ 85%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_meshk.cpp.o [ 86%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90_lcao.cpp.o [ 86%] Built target hamilt_pwdft [ 86%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_technique.cpp.o [ 86%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_lj.cpp.o [ 86%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_dp.cpp.o [ 86%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_of.cpp.o [ 86%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/ekinetic_new.cpp.o [ 87%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_rho.cpp.o [ 87%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_rhog.cpp.o [ 87%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_wfc_pw.cpp.o [ 88%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_of_interface.cpp.o [ 88%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/local_orbital_wfc.cpp.o [ 88%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/restart.cpp.o [ 88%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_of_tool.cpp.o [ 88%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_physfmt.cpp.o [ 88%] Built target gint [ 88%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_table.cpp.o [ 88%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_contextfmt.cpp.o [ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/mixing_data.cpp.o [ 89%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/binstream.cpp.o [ 89%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/nonlocal_new.cpp.o [ 89%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/dm_2d.cpp.o [ 89%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/wavefunc_in_pw.cpp.o /opt/abacus-develop/source/module_io/restart.cpp:29:9: warning: add explicit braces to avoid dangling else [-Wdangling-else] else return false; ^ /opt/abacus-develop/source/module_io/restart.cpp:34:9: warning: add explicit braces to avoid dangling else [-Wdangling-else] else return false; ^ /opt/abacus-develop/source/module_io/restart.cpp:45:9: warning: add explicit braces to avoid dangling else [-Wdangling-else] else return false; ^ /opt/abacus-develop/source/module_io/restart.cpp:50:9: warning: add explicit braces to avoid dangling else [-Wdangling-else] else return false; ^ [ 89%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao.cpp.o [ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/mixing.cpp.o [ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/plain_mixing.cpp.o 4 warnings generated. [ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/pulay_mixing.cpp.o [ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/broyden_mixing.cpp.o [ 89%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao_elec.cpp.o [ 89%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao_tddft.cpp.o [ 90%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao_tmpfunc.cpp.o [ 91%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/td_ekinetic_lcao.cpp.o [ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_wfc_pw.cpp.o [ 92%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/td_nonlocal_lcao.cpp.o [ 92%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/sc_lambda_lcao.cpp.o [ 92%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/dftu_new.cpp.o [ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_input.cpp.o [ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_cube.cpp.o [ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_rho.cpp.o [ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_potential.cpp.o [ 92%] Built target hamilt_lcao [ 92%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/fR_overlap.cpp.o /opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: warning: instantiation of variable 'hamilt::DFTUNew<hamilt::OperatorLCAO<double, double>>::dm_in_dftu' required here, but no definition is available [-Wundefined-var-template] hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr; ^ /opt/abacus-develop/source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/dftu_new.h:59:56: note: forward declaration of template entity is here static const elecstate::DensityMatrix<TK, double>* dm_in_dftu; ^ /opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: note: add an explicit instantiation declaration to suppress this warning if 'hamilt::DFTUNew<hamilt::OperatorLCAO<double, double>>::dm_in_dftu' is explicitly instantiated in another translation unit hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr; ^ /opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: warning: instantiation of variable 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, double>>::dm_in_dftu' required here, but no definition is available [-Wundefined-var-template] hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr; ^ /opt/abacus-develop/source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/dftu_new.h:59:56: note: forward declaration of template entity is here static const elecstate::DensityMatrix<TK, double>* dm_in_dftu; ^ /opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: note: add an explicit instantiation declaration to suppress this warning if 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, double>>::dm_in_dftu' is explicitly instantiated in another translation unit hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr; ^ /opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: warning: instantiation of variable 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, std::complex<double>>>::dm_in_dftu' required here, but no definition is available [-Wundefined-var-template] hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr; ^ /opt/abacus-develop/source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/dftu_new.h:59:56: note: forward declaration of template entity is here static const elecstate::DensityMatrix<TK, double>* dm_in_dftu; ^ /opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: note: add an explicit instantiation declaration to suppress this warning if 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, std::complex<double>>>::dm_in_dftu' is explicitly instantiated in another translation unit hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr; ^ [ 92%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/winput.cpp.o [ 93%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dipole.cpp.o [ 93%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/unk_overlap_lcao.cpp.o [ 93%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/mulliken_charge.cpp.o [ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/write_HS_R.cpp.o [ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/td_current_io.cpp.o [ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_wfc_r.cpp.o [ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_log.cpp.o [ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_rho.cpp.o [ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/write_HS_sparse.cpp.o [ 94%] Built target base [ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/single_R_io.cpp.o [ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/write_dm_sparse.cpp.o [ 95%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_potential.cpp.o 3 warnings generated. [ 95%] Built target esolver [ 95%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/cal_r_overlap_R.cpp.o [ 95%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/parameter_pool.cpp.o [ 96%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/output_mat_sparse.cpp.o [ 96%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/para_json.cpp.o [ 96%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dos_lcao.cpp.o [ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_orb_info.cpp.o [ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_proj_band_lcao.cpp.o [ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/nscf_fermi_surf.cpp.o [ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/istate_charge.cpp.o [ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/istate_envelope.cpp.o [ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_dm.cpp.o [ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_wfc_nao.cpp.o [ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_wfc_nao.cpp.o [ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dm.cpp.o [ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/dos_nao.cpp.o [ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_dm.cpp.o [ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_dm1.cpp.o [ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/sparse_matrix.cpp.o [ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/file_reader.cpp.o [ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/csr_reader.cpp.o [100%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/to_qo_kernel.cpp.o [100%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/to_qo_mpi.cpp.o [100%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/to_qo_structures.cpp.o [100%] Built target operator_ks_lcao [100%] Built target io_advanced [100%] Built target io_basic [100%] Building CXX object CMakeFiles/abacus.dir/source/main.cpp.o [100%] Linking CXX executable abacus [100%] Built target abacus -- Install configuration: "" -- Installing: /opt/abacus-develop/bin/abacus
于是,我们完成了ABACUS的编译!其他工具链,如gnu
和intel-mpich
工具链编译的ABACUS,均可用如上方法快速完成
更多的编译工具链等待你探索!
4. ABACUS运行测试
我们已经得到一个成熟的ABACUS了,现在是时候让它跑起来了。
在真正使用ABACUS之前,首先我们要简单配置一下相关的环境变量。toolchain脚本已经自动帮你生成了abacus_env.sh文件,你可以用它快速导入ABACUS的环境变量。
source /opt/abacus-develop/toolchain/install/setup export PATH="/opt/abacus-develop/bin":${PATH}
然后,让我们查看一下abacus的版本(由于加载环境的困难这里一直没跑通)
:: initializing oneAPI environment ... dash: SH_VERSION = unknown args: Using "$@" for setvars.sh arguments: :: compiler -- latest :: debugger -- latest :: dev-utilities -- latest :: mkl -- latest :: mpi -- latest :: tbb -- latest :: vtune -- latest :: oneAPI environment initialized :: /usr/bin/sh: 1: /opt/abacus-develop/toolchain/abacus_env.sh: source: not found abacus: error while loading shared libraries: libxc.so.12: cannot open shared object file: No such file or directory
最后,让我们分别采用MPI和OMP方法,简单运行一个实例。这个实例可以在ABACUS的仓库内找到。这些代码建议在命令行中,通过abacus_env.sh加载好了ABACUS环境后再运行。在Notebook内加载环境存在困难
在c16_m32_cpu
机器下,可运行如下命令
量子御坂
陈涛
量子御坂
量子御坂
jianzhifu@vip.163.com
量子御坂