You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Toochain update: new download url and MPICH/OpenMPI version (#5088)
* Add url download function
* add -O option for wget
* using url downloader in stage4
* update mpich version
* Update README.md
* disable rapidjson by default
related to #5069
* add information for abacus_env.sh
* modify info of abacus_env.sh
* add information for gcc toolchain
* update OpenMPI version to 5.0.5
* Update README.md
* change the download url for openmpi
* Update README.md
* fix link of openmpi
* fix openmpi url
* Update install_libtorch.sh
* update date of update
---------
Co-authored-by: kirk0830 <[email protected]>
Copy file name to clipboardExpand all lines: toolchain/README.md
+57-29Lines changed: 57 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,9 @@
1
1
# The ABACUS Toolchain
2
+
2
3
Version 2024.2
3
4
4
5
## Author
6
+
5
7
[QuantumMisaka](https://github.com/QuantumMisaka)
6
8
(Zhaoqing Liu) @PKU@AISI
7
9
@@ -25,7 +27,7 @@ and give setup files that you can use to compile ABACUS.
25
27
-[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)
26
28
-[x] A mirror station by Bohrium database, which can download CEREAL, LibNPY, LibRI and LibComm by `wget` in China Internet.
27
29
-[x] Support for GPU compilation, users can add `-DUSE_CUDA=1` in builder scripts.
28
-
-[ ]A better mirror station for all packages.
30
+
-[ ]Change the downloading url from cp2k mirror to other mirror or directly downloading from official website. (doing)
29
31
-[ ] A better README and Detail markdown file.
30
32
-[ ] Automatic installation of [DEEPMD](https://github.com/deepmodeling/deepmd-kit).
31
33
-[ ] Better compliation method for ABACUS-DEEPMD and ABACUS-DEEPKS.
@@ -35,11 +37,11 @@ and give setup files that you can use to compile ABACUS.
35
37
36
38
37
39
## Usage Online & Offline
40
+
38
41
Main script is *install_abacus_toolchain.sh*,
39
42
which will use scripts in *scripts* directory
40
43
to compile install dependencies of ABACUS.
41
-
42
-
You can just `./install_abacus_toolchain.sh -h` to get more help message.
44
+
It can be directly used, but not recommended.
43
45
44
46
There are also well-modified script to run *install_abacus_toolchain.sh* for `gnu-openblas` and `intel-mkl` toolchains dependencies.
45
47
@@ -51,6 +53,7 @@ There are also well-modified script to run *install_abacus_toolchain.sh* for `gn
51
53
# for intel-mkl-mpich
52
54
> ./toolchain_intel-mpich.sh
53
55
```
56
+
54
57
It is recommended to run them first to get a fast installation of ABACUS under certain environments.
55
58
56
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.
@@ -66,6 +69,7 @@ If you have a fresh environments and you have `sudo` permission, you can use *in
66
69
```
67
70
68
71
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:
72
+
69
73
-`CEREAL` which will be downloaded from [CEREAL](https://github.com/USCiLab/cereal)
70
74
-`Libnpy` which will be downloaded from [LIBNPY](https://github.com/llohse/libnpy)
71
75
-`LibRI` which will be downloaded from [LibRI](https://github.com/abacusmodeling/LibRI)
@@ -77,12 +81,17 @@ Instead of github.com, we offer other package station, you can use it by:
`unzip` it ,and you can do offline installation of these packages above after rename. The above station will be updated handly but one should notice that the version will always lower than github repo.
84
+
`unzip` it ,and you can do offline installation of these packages above after rename.
85
+
```shell
86
+
# packages downloaded from github.com
87
+
mv v1.3.2.tar.gz build/cereal-1.3.2.tar.gz
88
+
```
89
+
The above station will be updated handly but one should notice that the version will always lower than github repo.
81
90
82
91
If one want to install ABACUS by toolchain OFFLINE,
83
92
one can manually download all the packages from [cp2k-static/download](https://www.cp2k.org/static/downloads) or official website
84
93
and put them in *build* directory by formatted name
85
-
like *fftw-3.3.10.tar.gz*, or *openmpi-5.0.3.tar.gz*,
94
+
like *fftw-3.3.10.tar.gz*, or *openmpi-5.0.5.tar.bz2*,
86
95
then run this toolchain.
87
96
All package will be detected and installed automatically.
88
97
Also, one can install parts of packages OFFLINE and parts of packages ONLINE
@@ -96,10 +105,11 @@ just by using this toolchain
96
105
```
97
106
98
107
The needed dependencies version default:
108
+
99
109
-`cmake` 3.30.0
100
110
-`gcc` 13.2.0 (which will always NOT be installed, But use system)
101
-
-`OpenMPI` 5.0.3
102
-
-`MPICH` 4.1.2
111
+
-`OpenMPI` 5.0.5
112
+
-`MPICH` 4.2.2
103
113
-`OpenBLAS` 0.3.27 (Intel toolchain need `get_vars.sh` tool from it)
104
114
-`ScaLAPACK` 2.2.1
105
115
-`FFTW` 3.3.10
@@ -111,28 +121,21 @@ And Intel-oneAPI need user or server manager to manually install from Intel.
Dependencies below are optional, which is NOT installed by default:
124
+
114
125
-`LibTorch` 2.1.2
115
126
-`Libnpy` 1.0.1
116
127
-`LibRI` 0.2.0
117
128
-`LibComm` 0.1.1
118
-
Users can install them by using `--with-*=install` in toolchain*.sh, which is `no` in default.
119
-
> 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, which is also work for libnpy, which is more recommended.
120
129
121
-
Notice: for `CEREAL`,`RapidJSON`, `Libnpy`, `LibRI` and `LibComm`,
122
-
you need to download them from github.com,
123
-
rename it as formatted, and put them in `build` directory at the same time
124
-
e.g.:
125
-
```shell
126
-
# packages downloaded from github.com
127
-
mv v1.3.2.tar.gz build/cereal-1.3.2.tar.gz
128
-
```
130
+
Users can install them by using `--with-*=install` in toolchain*.sh, which is `no` in default.
131
+
> 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.
129
132
130
133
Users can easily compile and install dependencies of ABACUS
131
134
by running these scripts after loading `gcc` or `intel-mkl-mpi`
132
135
environment.
133
136
134
137
The toolchain installation process can be interrupted at anytime.
135
-
just re-run *install_abacus_toolchain.sh*, toolchain itself may fix it
138
+
just re-run *toolchain_\*.sh*, toolchain itself may fix it
136
139
137
140
If compliation is successful, a message will be shown like this:
138
141
@@ -147,6 +150,7 @@ If compliation is successful, a message will be shown like this:
147
150
> ./build_abacus_intel.sh
148
151
> or you can modify the builder scripts to suit your needs.
149
152
```
153
+
150
154
You can run *build_abacus_gnu.sh* or *build_abacus_intel.sh* to build ABACUS
151
155
by gnu-toolchain or intel-toolchain respectively, the builder scripts will
152
156
automatically locate the environment and compile ABACUS.
@@ -160,17 +164,28 @@ If users want to use toolchain but lack of some system library
160
164
dependencies, *install_requirements.sh* scripts will help.
161
165
162
166
If users want to re-install all the package, just do:
- 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
183
+
- 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.
184
+
172
185
### GPU version of ABACUS
173
-
add following options in build*.sh:
186
+
187
+
For GPU version of ABACUS (do not GPU version installer of ELPA, which is still doing work), add following options in build*.sh:
-DCMAKE_CUDA_COMPILER=${path to cuda toolkit}/bin/nvcc \
181
196
......
182
197
```
183
-
Notice: You CANNOT use `icpx` compiler for GPU version of ABACUS for now
184
198
185
-
### shell problem
199
+
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)
200
+
201
+
202
+
### Shell problem
203
+
186
204
If you encounter problem like:
205
+
187
206
```shell
188
207
/bin/bash^M: bad interpreter: No such file or directory
189
208
```
209
+
190
210
or `permission denied` problem, you can simply run:
211
+
191
212
```shell
192
213
./pre_set.sh
193
214
```
215
+
194
216
And also, you can fix `permission denied` problem via `chmod +x`
195
217
if *pre_set.sh* have no execution permission;
196
218
if the *pre_set.sh* also have `/bin/bash^M` problem, you can run:
197
-
```
219
+
220
+
```shell
198
221
> dos2unix pre_set.sh
199
222
```
223
+
200
224
to fix it
201
225
202
-
### libtorch and deepks problem
226
+
### Libtorch and DeePKS problem
227
+
203
228
If deepks feature have problem, you can manually change libtorch version
204
-
from 2.0.1 to 1.12.0 in `toolchain/scripts/stage4/install_libtorch.sh`.
229
+
from 2.1.2 to 2.0.1 or 1.12.0 in `toolchain/scripts/stage4/install_libtorch.sh`.
230
+
205
231
Also, you can install ABACUS without deepks by removing all the deepks and related options.
206
232
207
233
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`
208
234
209
-
### deepmd feature problem
235
+
### DeePMD feature problem
236
+
210
237
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`.
211
238
212
239
After my test, you need `gcc`>11.3.1 to enable deepmd feature in ABACUS.
213
240
214
241
### ELPA problem via Intel-oneAPI toolchain in AMD server
242
+
215
243
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)
216
244
217
245
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`
218
246
219
-
Notice: `icc` and `icpc` from Intel Classic Compiler of Intel-oneAPI is not supported for 2024.0 and newer version.
220
-
247
+
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)
221
248
222
249
### Intel-oneAPI problem
250
+
223
251
Sometimes Intel-oneAPI have problem to link `mpirun`,
224
252
which will always show in 2023.2.0 version of MPI in Intel-oneAPI.
225
253
Try `source /path/to/setvars.sh` or install another version of IntelMPI may help.
@@ -229,7 +257,6 @@ And will not occur in Intel-MPI before 2021.10.0 (Intel-oneAPI before 2023.2.0)
229
257
230
258
More problem and possible solution can be accessed via [#2928](https://github.com/deepmodeling/abacus-develop/issues/2928)
231
259
232
-
233
260
## Advanced Installation Usage
234
261
235
262
1. Users can move toolchain directory to anywhere you like,
@@ -243,4 +270,5 @@ of each packages, which may let the installation more fiexible.
0 commit comments