Skip to content

Commit 4c260bb

Browse files
committed
bug fix and update readme
1 parent f1e16c6 commit 4c260bb

File tree

2 files changed

+44
-27
lines changed

2 files changed

+44
-27
lines changed

toolchain/README.md

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# The ABACUS Toolchain
22

3-
Version 2024.3
3+
Version 2025.1
44

55
## Author
66

@@ -27,12 +27,12 @@ and give setup files that you can use to compile ABACUS.
2727
- [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)
2828
- [x] A mirror station by Bohrium database, which can download CEREAL, LibNPY, LibRI and LibComm by `wget` in China Internet.
2929
- [x] Support for GPU compilation, users can add `-DUSE_CUDA=1` in builder scripts.
30+
- [ ] Support for AMD compiler and math lib like `AOCL` and `AOCC`
3031
- [ ] Change the downloading url from cp2k mirror to other mirror or directly downloading from official website. (doing)
3132
- [ ] A better README and Detail markdown file.
3233
- [ ] Automatic installation of [DEEPMD](https://github.com/deepmodeling/deepmd-kit).
3334
- [ ] Better compliation method for ABACUS-DEEPMD and ABACUS-DEEPKS.
3435
- [ ] Modulefile generation scripts.
35-
- [ ] Support for AMD compiler and math lib like `AOCL` and `AOCC`
3636

3737

3838
## Usage Online & Offline
@@ -109,15 +109,15 @@ just by using this toolchain
109109

110110
The needed dependencies version default:
111111

112-
- `cmake` 3.30.0
112+
- `cmake` 3.31.2
113113
- `gcc` 13.2.0 (which will always NOT be installed, But use system)
114-
- `OpenMPI` 4.1.6 (5.0.5 can be used but have some problem in OpenMP parallel computation in ELPA)
115-
- `MPICH` 4.2.2
114+
- `OpenMPI` 5.0.6 (Version 5 OpenMPI is good but will have compability problem, user can manually downarade to Version 4 in toolchain scripts)
115+
- `MPICH` 4.3.2
116116
- `OpenBLAS` 0.3.28 (Intel toolchain need `get_vars.sh` tool from it)
117117
- `ScaLAPACK` 2.2.1 (a developing version)
118118
- `FFTW` 3.3.10
119119
- `LibXC` 6.2.2
120-
- `ELPA` 2024.05.001
120+
- `ELPA` 2025.01.001
121121
- `CEREAL` 1.3.2
122122
- `RapidJSON` 1.1.0
123123
And Intel-oneAPI need user or server manager to manually install from Intel.
@@ -180,11 +180,47 @@ or you can also do it in a more completely way:
180180

181181
## Common Problems and Solutions
182182

183-
### LibRI and LibComm for EXX
183+
### Intel-oneAPI problem
184+
185+
#### ELPA problem via Intel-oneAPI toolchain in AMD server
186+
187+
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)
188+
189+
The best way is to change `icpx` to `icpc`, `icx` to `icc`. user can manually change it in *toolchain_intel.sh* via `--with-intel-classic=yes`
190+
191+
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 QE website. You need to download Base-toolkit for MKL and HPC-toolkit for MPi and compiler for Intel-OneAPI 2023.2.0, while in Intel-OneAPI 2024.x, only the HPC-toolkit is needed.
192+
193+
You can get Intel-OneAPI in [QE-managed website](https://pranabdas.github.io/espresso/setup/hpc/#installing-intel-oneapi-libraries), and use this code to get Intel oneAPI Base Toolkit and HPC Toolkit:
194+
```shell
195+
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/992857b9-624c-45de-9701-f6445d845359/l_BaseKit_p_2023.2.0.49397_offline.sh
196+
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0722521a-34b5-4c41-af3f-d5d14e88248d/l_HPCKit_p_2023.2.0.49440_offline.sh
197+
```
198+
199+
Related discussion here [#4976](https://github.com/deepmodeling/abacus-develop/issues/4976)
200+
201+
#### link problem in early 2023 version oneAPI
202+
203+
Sometimes Intel-oneAPI have problem to link `mpirun`,
204+
which will always show in 2023.2.0 version of MPI in Intel-oneAPI.
205+
Try `source /path/to/setvars.sh` or install another version of IntelMPI may help.
206+
207+
which is fixed in 2024.0.0 version of Intel-oneAPI,
208+
And will not occur in Intel-MPI before 2021.10.0 (Intel-oneAPI before 2023.2.0)
209+
210+
More problem and possible solution can be accessed via [#2928](https://github.com/deepmodeling/abacus-develop/issues/2928)
211+
212+
213+
### OpenMPI problem
214+
215+
#### in EXX and LibRI
184216

185217
- 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
186218
- 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.
187219

220+
#### OpenMPI-v5
221+
222+
OpenMPI in version 5 has huge update, lead to compatibility problem. If one wants to use the OpenMPI in version 4 (4.1.6), one can specify `--with-openmpi-4th=yes` in *toolchain_gnu.sh*
223+
188224
### GPU version of ABACUS
189225

190226
For GPU version of ABACUS (do not GPU version installer of ELPA, which is still doing work), add following options in build*.sh:
@@ -242,26 +278,6 @@ When you encounter problem like `GLIBCXX_3.4.29 not found`, it is sure that your
242278

243279
After my test, you need `gcc`>11.3.1 to enable deepmd feature in ABACUS.
244280

245-
### Intel-oneAPI problem
246-
247-
#### ELPA problem via Intel-oneAPI toolchain in AMD server
248-
249-
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)
250-
251-
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`
252-
253-
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)
254-
255-
#### link problem in early 2023 version oneAPI
256-
257-
Sometimes Intel-oneAPI have problem to link `mpirun`,
258-
which will always show in 2023.2.0 version of MPI in Intel-oneAPI.
259-
Try `source /path/to/setvars.sh` or install another version of IntelMPI may help.
260-
261-
which is fixed in 2024.0.0 version of Intel-oneAPI,
262-
And will not occur in Intel-MPI before 2021.10.0 (Intel-oneAPI before 2023.2.0)
263-
264-
More problem and possible solution can be accessed via [#2928](https://github.com/deepmodeling/abacus-develop/issues/2928)
265281

266282
## Advanced Installation Usage
267283

toolchain/scripts/stage1/install_openmpi.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ if [ "${openmpi_4th}" = "yes" ]; then
1616
else
1717
openmpi_ver="5.0.6"
1818
openmpi_sha256="bd4183fcbc43477c254799b429df1a6e576c042e74a2d2f8b37d537b2ff98157"
19+
fi
1920
openmpi_pkg="openmpi-${openmpi_ver}.tar.bz2"
2021

2122
source "${SCRIPT_DIR}"/common_vars.sh

0 commit comments

Comments
 (0)