Skip to content

Commit 0fc6591

Browse files
committed
minor update
1 parent 096371e commit 0fc6591

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

toolchain/README.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ and give setup files that you can use to compile ABACUS.
3131
- [ ] A better README and Detail markdown file.
3232
- [ ] Automatic installation of [DEEPMD](https://github.com/deepmodeling/deepmd-kit).
3333
- [ ] Better compliation method for ABACUS-DEEPMD and ABACUS-DEEPKS.
34-
- [ ] A better `setup` and toolchain code structure.
3534
- [ ] Modulefile generation scripts.
3635
- [ ] Support for AMD compiler and math lib like `AOCL` and `AOCC`
3736

@@ -54,9 +53,16 @@ There are also well-modified script to run *install_abacus_toolchain.sh* for `gn
5453
> ./toolchain_intel-mpich.sh
5554
```
5655

57-
It is recommended to run them first to get a fast installation of ABACUS under certain environments.
56+
It is recommended to run one of them first to get a fast installation of ABACUS under certain environments.
5857

59-
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.
58+
If you are using Intel environments via Intel-OneAPI: please note:
59+
1. After version 2024.0, Intel classic compilers `icc` and `icpc` are not present, so as `ifort` after version 2025.0. Intel MPI compiler will also be updated to `mpiicx`, `mpiicpx` and `mpiifx`.
60+
2. toolchain will detect `icx`, `icpx`, `ifx`, `mpiicx`, `mpiicpx` and `mpiifx` as default compiler.
61+
3. Users can manually specify `--with-intel-classic=yes` to use Intel classic compiler in `toolchain*.sh`, or specify `--with-intelmpi-classic=yes` to use Intel MPI classic compiler in `toolchain*.sh` while keep the CC, CXX and F90 compiler to new version.
62+
4. Users can manually specify `--with-ifx=no` in `toolchain*.sh` to use `ifort` while keep other compiler to new version.
63+
5. More information is in the later part of this README.
64+
65+
**Notice: You GCC version should be no lower than 5 !!!, larger than 7.3.0 is recommended**
6066

6167
**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`**
6268

@@ -195,6 +201,7 @@ cmake -B $BUILD_DIR -DCMAKE_INSTALL_PREFIX=$PREFIX \
195201

196202
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)
197203

204+
If you wants to use ABACUS GPU-LCAO by `cusolvermp` or `elpa`, please contact the coresponding developer, toolchain do not fully support them now.
198205

199206
### Shell problem
200207

@@ -235,15 +242,17 @@ When you encounter problem like `GLIBCXX_3.4.29 not found`, it is sure that your
235242

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

238-
### ELPA problem via Intel-oneAPI toolchain in AMD server
245+
### Intel-oneAPI problem
246+
247+
#### ELPA problem via Intel-oneAPI toolchain in AMD server
239248

240249
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)
241250

242251
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`
243252

244253
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)
245254

246-
### Intel-oneAPI problem
255+
#### link problem in early 2023 version oneAPI
247256

248257
Sometimes Intel-oneAPI have problem to link `mpirun`,
249258
which will always show in 2023.2.0 version of MPI in Intel-oneAPI.

toolchain/scripts/stage1/install_intelmpi.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ case "${with_intelmpi}" in
3333
echo "==================== Finding Intel MPI from system paths ===================="
3434
check_command mpiexec "intelmpi" && MPIRUN="$(realpath $(command -v mpiexec))"
3535
if [ "${with_intel}" != "__DONTUSE__" ]; then
36+
if [ "${intel_classic}" = "yes" ]; then
37+
# if intel compiler used as classic, so as intelmpi
38+
export ${intel_classic}="yes"
39+
fi
3640
if [ "${intelmpi_classic}" = "yes" ]; then
3741
check_command mpiicc "intelmpi" && MPICC="$(realpath $(command -v mpiicc))" || exit 1
3842
check_command mpiicpc "intelmpi" && MPICXX="$(realpath $(command -v mpiicpc))" || exit 1

0 commit comments

Comments
 (0)