Skip to content

Commit 3a75faa

Browse files
committed
Update installation documentation
1 parent 1e4c1c6 commit 3a75faa

2 files changed

Lines changed: 16 additions & 18 deletions

File tree

docs/advanced/install.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,14 @@ To build ABACUS:
6464
cmake -B build -DNEP_DIR=/path/to/nep_cpu
6565
```
6666

67-
## Build with LibRI and LibComm
67+
## Build with EXX feature support
6868

69-
The new EXX implementation depends on two external libraries:
70-
71-
- [LibRI](https://github.com/abacusmodeling/LibRI)
72-
- [LibComm](https://github.com/abacusmodeling/LibComm)
73-
74-
These two libraries are added as submodules in the [deps](https://github.com/deepmodeling/abacus-develop/tree/develop/deps) folder. Set `-DENABLE_LIBRI=ON` to build with these two libraries.
69+
The new EXX implementation directly depends on [LibRI](https://github.com/abacusmodeling/LibRI) to provide RI implementation, while LibRI requires two external dependencies: [LibComm](https://github.com/abacusmodeling/LibComm) for inter-process communication, and [cereal](https://github.com/USCiLab/cereal) for serialization. Set `-DENABLE_LIBRI=ON` to build with these libraries.
7570

7671
```{note}
7772
`ENABLE_LIBCOMM` is deprecated because LibComm is not a standalone ABACUS feature. CMake locates it automatically as a dependency of LibRI. If you prefer using manually downloaded libraries, enable LibRI and provide their locations via `-DLIBRI_DIR=/path/to/LibRI` and `-DLIBCOMM_DIR=/path/to/LibComm`.
7873
```
7974

80-
8175
## Build with DFT-D4 support
8276

8377
ABACUS can use the external [DFT-D4](https://github.com/dftd4/dftd4) library for Grimme's DFT-D4 dispersion correction. DFT-D4 support is optional and disabled by default.
@@ -132,9 +126,11 @@ cmake -B build -DUSE_CUDA=1 -DCMAKE_CUDA_COMPILER=${path to cuda toolkit}/bin/nv
132126

133127
If you are confident that your MPI supports CUDA Aware, you can add `-DUSE_CUDA_MPI=ON`. In this case, the program will directly communicate data with the CUDA hardware, rather than transferring it to the CPU first before communication. But note that if CUDA Aware is not supported, adding `-DUSE_CUDA_MPI=ON` will cause the program to throw an error.
134128

135-
## Build math library from source
129+
## Build GNU math library from source
136130

137-
> Note: We recommend using the latest available compiler sets, since they offer faster implementations of math functions.
131+
```{note}
132+
We recommend using the latest available compiler sets instead, since they offer faster implementations of math functions.
133+
```
138134

139135
This flag is disabled by default. To build math functions from source code, define `ENABLE_ABACUS_LIBM` flag. It is expected to get a better performance on legacy versions of `gcc` and `clang`.
140136

docs/quick_start/easy_install.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,15 @@ To compile ABACUS, please make sure that the following prerequisites are present
5858

5959
These requirements support the calculation of plane-wave basis in ABACUS. For LCAO basis calculation, additional components are required:
6060

61-
- [ScaLAPACK](http://www.netlib.org/scalapack/).
62-
- [CEREAL](https://uscilab.github.io/cereal/).
63-
- [ELPA](https://elpa.mpcdf.mpg.de/) >= 2017 (optional).
61+
- [ScaLAPACK](http://www.netlib.org/scalapack/) (when MPI is enabled).
62+
- [ELPA](https://elpa.mpcdf.mpg.de/) >= 2021 (optional).
6463

6564
## Install by toolchain
6665

6766
We offer a set of [toolchain](https://github.com/deepmodeling/abacus-develop/tree/develop/toolchain)
6867
scripts to compile and install all the requirements and ABACUS itself
6968
automatically and suitable for machine characteristic in an online or offline way.
70-
The toolchain can be downloaded with ABACUS repo, and users can easily compile the requirements by running *toolchain_[gnu,intel,gcc-aocl,aocc-aocl].sh* and ABACUS itself by running *build_abacus_[gnu,intel,gcc-aocl,aocc-aocl].sh* script in the toolchain directory in `GNU`, `Intel-oneAPI` , `GCC-AMD AOCL` and `AMD AOCC-AOCL` toolchain.
69+
The toolchain can be downloaded with ABACUS repo, and users can easily compile the requirements by running `toolchain_[gnu,intel,gcc-aocl,aocc-aocl].sh` and ABACUS itself by running `build_abacus_[gnu,intel,gcc-aocl,aocc-aocl].sh` script in the toolchain directory in `GNU`, `Intel-oneAPI` , `GCC-AMD AOCL` and `AMD AOCC-AOCL` toolchain.
7170
Sometimes, ABACUS by toolchain installation may have better efficient performance due to the suitable compiled dependencies. One should read the [README in toolchain](https://github.com/deepmodeling/abacus-develop/tree/develop/toolchain/README.md) for most of the information before use, and related tutorials can be accessed via ABACUS WeChat platform.
7271

7372
## Install by conda
@@ -126,14 +125,17 @@ Possible command: `cmake -B build -DENABLE_MLALGO=ON -DENABLE_LIBXC=ON -DENABLE_
126125
Some of these packages can be installed with popular package management system via root permission if you have, such as `apt` and `yum`:
127126

128127
```bash
129-
sudo apt update && sudo apt install -y libopenblas-openmp-dev liblapack-dev libscalapack-mpi-dev libelpa-dev libfftw3-dev libcereal-dev libxc-dev g++ make cmake bc git pkgconf
128+
sudo apt update && sudo apt install -y libopenmpi-dev libopenblas-openmp-dev libscalapack-openmpi-dev libelpa-dev libfftw3-dev libcereal-dev libxc-dev g++ make cmake bc git pkgconf
130129
```
131130

132131
> Installing ELPA by apt only matches requirements on Ubuntu 22.04. For earlier linux distributions, you should build ELPA from source.
133132
134-
We recommend [Intel® oneAPI toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/commercial-base-hpc.html) (former Intel® Parallel Studio) as toolchain. The [Intel® oneAPI Base Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#base-kit) contains Intel® oneAPI Math Kernel Library (aka `MKL`), including `BLAS`, `LAPACK`, `ScaLAPACK` and `FFTW3`. The [Intel® oneAPI HPC Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#hpc-kit) contains Intel® MPI Library, and C++ compiler(including MPI compiler).
135-
> Please note that building `elpa` with a different MPI library may cause conflict.
136-
> Don't forget to [set environment variables](https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-render-linux/top/configure-your-system.html) before you start! `cmake` will use Intel MKL if the environment variable `MKLROOT` is set.
133+
You can also use [Intel® oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/oneapi-toolkit.html) (former Intel® Parallel Studio) as toolchain. The [Intel® oneAPI Base Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#base-kit) contains Intel® oneAPI Math Kernel Library (aka `MKL`), including `BLAS`, `LAPACK`, `ScaLAPACK` and `FFTW3`. The [Intel® oneAPI HPC Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html#hpc-kit) contains Intel® MPI Library, and C++ compiler (including MPI compiler). (Note: Since version 2026.0.0, the two toolkits has been merged into a single [Intel® oneAPI toolkits](https://www.intel.com/content/www/us/en/developer/tools/oneapi/oneapi-toolkit.html))
134+
135+
```{note}
136+
- Please note that building `elpa` with a different MPI library may cause conflict. Don't forget to [set environment variables](https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-render-linux/top/configure-your-system.html) before you start!
137+
- `cmake` will use Intel MKL if the environment variable `MKLROOT` is set.
138+
```
137139

138140
Please refer to our [guide](https://github.com/deepmodeling/abacus-develop/wiki/Building-and-Running-ABACUS) on installing requirements.
139141

0 commit comments

Comments
 (0)