|
1 | 1 | # ABACUS Toolchain |
2 | 2 |
|
3 | | -[](https://github.com/deepmodeling/abacus-develop/tree/develop/toolchain) |
| 3 | +[](https://github.com/deepmodeling/abacus-develop/tree/develop/toolchain) |
4 | 4 | [](#license) |
5 | 5 | []() |
6 | 6 |
|
@@ -139,12 +139,23 @@ For air-gapped systems or unreliable internet: |
139 | 139 | # 1. Create build directory and download packages |
140 | 140 | mkdir build |
141 | 141 | # Download required packages to build/ directory with proper naming |
142 | | -# e.g., fftw-3.3.10.tar.gz, openmpi-5.0.8.tar.bz2 |
| 142 | +# e.g., fftw-3.3.11.tar.gz, openmpi-5.0.10.tar.bz2 |
143 | 143 |
|
144 | 144 | # 2. Run toolchain (will detect local packages) |
145 | 145 | ./toolchain_gnu.sh |
146 | 146 | ``` |
147 | 147 |
|
| 148 | +The downloading process can be facilitated via `./toolchain_gnu.sh --pack-run`. |
| 149 | + |
| 150 | +Also, for users in China, we provide a Gitee mirror repository with pre-downloaded packages: |
| 151 | +```bash |
| 152 | +# Clone the Gitee repository in toolchain directory |
| 153 | +git clone https://gitee.com/jamesmisaka/abacus_toolchain_build.git |
| 154 | +# Move packages to build directory |
| 155 | +mv abacus_toolchain_build/* build/ |
| 156 | +# Then run toolchain normally |
| 157 | +``` |
| 158 | + |
148 | 159 | ### Hybrid Installation |
149 | 160 |
|
150 | 161 | Mix online and offline packages as needed - the toolchain automatically detects locally available packages and downloads missing ones. |
@@ -178,20 +189,20 @@ Mix online and offline packages as needed - the toolchain automatically detects |
178 | 189 | | CMake | 3.31.7 / 3.30.5 | Build system | BSD-3-Clause | Install | |
179 | 190 | | GCC | 13.2.0 / 11.4.0 | C/C++ compiler | GPL-3.0-or-later WITH GCC-exception-3.1 | Install | |
180 | 191 | | **MPI Libraries** ||||| |
181 | | -| OpenMPI | 5.0.8 / 4.1.6 | MPI implementation | BSD-3-Clause-Open-MPI | Install | |
182 | | -| MPICH | 4.3.1 / 4.1.0 | Alternative MPI | mpich2 (BSD-like) | Alternative | |
| 192 | +| OpenMPI | 5.0.10 / 4.1.8 | MPI implementation | BSD-3-Clause-Open-MPI | Install | |
| 193 | +| MPICH | 5.0.1 / 4.3.2 | Alternative MPI | mpich2 (BSD-like) | Alternative | |
183 | 194 | | **Math Libraries** ||||| |
184 | | -| OpenBLAS | 0.3.30 / 0.3.27 | Linear algebra | BSD-3-Clause | Install | |
185 | | -| ScaLAPACK | 2.2.2 / 2.2.1 | Parallel linear algebra | BSD-3-Clause | Install | |
| 195 | +| OpenBLAS | 0.3.33 / 0.3.30 | Linear algebra | BSD-3-Clause | Install | |
| 196 | +| ScaLAPACK | 2.2.3 / 2.2.1 | Parallel linear algebra | BSD-3-Clause | Install | |
186 | 197 | | **Scientific Libraries** ||||| |
187 | | -| FFTW | 3.3.10 / 3.3.10 | Fast Fourier Transform | GPL-2.0-or-later | Install | |
| 198 | +| FFTW | 3.3.11 / 3.3.10 | Fast Fourier Transform | GPL-2.0-or-later | Install | |
188 | 199 | | LibXC | 7.0.0 / 6.2.2 | Exchange-correlation | MPL-2.0 | Install | |
189 | | -| ELPA | 2025.06.001 / 2024.05.001 | Eigenvalue solver | LGPL-3.0-only | Install | |
| 200 | +| ELPA | 2026.02.001 / 2024.05.001 | Eigenvalue solver | LGPL-3.0-only | Install | |
190 | 201 | | **Advanced Features** ||||| |
191 | | -| Cereal | master | C++ Serialization | BSD | Install | |
192 | | -| RapidJSON | master | JSON parsing | MIT | Install | |
193 | | -| LibRI | master | EXX calculations | GPL-3.0 | Install | |
194 | | -| LibComm | master | EXX calculations | GPL-3.0 | Install | |
| 202 | +| Cereal | pinned commit | C++ Serialization | BSD | Install | |
| 203 | +| RapidJSON | pinned commit | JSON parsing | MIT | Install | |
| 204 | +| LibRI | pinned commit | EXX calculations | GPL-3.0 | Install | |
| 205 | +| LibComm | pinned commit | EXX calculations | GPL-3.0 | Install | |
195 | 206 | | LibTorch | 2.1.2 / 1.12.1 | MLALGO support | BSD-3-Clause | Optional | |
196 | 207 | | LibNPY | 1.0.1 / 1.0.1 | NumPy I/O | MIT | Optional | |
197 | 208 | | NEP | main | Neuroevolution potential | MIT | Optional | |
@@ -226,11 +237,11 @@ One can also manually edit the `toolchain_gnu.sh` for selecting specific version |
226 | 237 | # Refer to scripts/package_versions.sh for specific version numbers |
227 | 238 |
|
228 | 239 | CMAKE_VERSION="main" # main=3.31.7, alt=3.30.5 |
229 | | -OPENMPI_VERSION="main" # main=5.0.8, alt=4.1.6 |
230 | | -OPENBLAS_VERSION="main" # main=0.3.30, alt=0.3.27 |
231 | | -ELPA_VERSION="main" # main=2025.06.001, alt=2024.05.001 |
| 240 | +OPENMPI_VERSION="main" # main=5.0.10, alt=4.1.8 |
| 241 | +OPENBLAS_VERSION="main" # main=0.3.33, alt=0.3.30 |
| 242 | +ELPA_VERSION="main" # main=2026.02.001, alt=2024.05.001 |
232 | 243 | LIBXC_VERSION="main" # main=7.0.0, alt=6.2.2 |
233 | | -SCALAPACK_VERSION="main" # main=2.2.2, alt=2.2.1 |
| 244 | +SCALAPACK_VERSION="main" # main=2.2.3, alt=2.2.1 |
234 | 245 | # Optional Libraries |
235 | 246 | LIBTORCH_VERSION="main" # main=2.1.2, alt=1.12.1 (use alt for older GLIBC) |
236 | 247 | ``` |
@@ -467,19 +478,6 @@ NPROCS_OVERWRITE=4 ./toolchain_gnu.sh --with-gcc --with-openmpi |
467 | 478 | - **CI/CD environments**: Match container resource limits |
468 | 479 | - **Debugging**: Use single-core compilation for clearer error messages |
469 | 480 |
|
470 | | -### Legacy Script Options |
471 | | - |
472 | | -The deprecated `install_abacus_toolchain.sh` supports additional options: |
473 | | - |
474 | | -| Option | Description | Availability | |
475 | | -|--------|-------------|--------------| |
476 | | -| `--dry-run` | Test configuration without installation | ✅ New & Legacy | |
477 | | -| `--pack-run` | Download packages without building | ✅ New & Legacy | |
478 | | -| `--no-check-certificate` | Skip SSL certificate verification | ⚠️ Legacy only (use `DOWNLOAD_CERT_POLICY=skip`) | |
479 | | -| `-j N` | Limit parallel compilation processes | ⚠️ Legacy only (use `NPROCS_OVERWRITE=N`) | |
480 | | - |
481 | | -> **Migration Note**: The new toolchain system (`toolchain_*.sh` scripts) is recommended over the legacy `install_abacus_toolchain.sh`. Legacy options like `--no-check-certificate` and `-j N` are replaced by environment variables `DOWNLOAD_CERT_POLICY` and `NPROCS_OVERWRITE` respectively. |
482 | | - |
483 | 481 | ### Environment Management |
484 | 482 |
|
485 | 483 | The toolchain generates several setup files: |
@@ -509,15 +507,14 @@ scripts/ |
509 | 507 | | File | Purpose | |
510 | 508 | |------|---------| |
511 | 509 | | `install_abacus_toolchain_new.sh` | Main orchestration script (new version) | |
512 | | -| `install_abacus_toolchain.sh` | Legacy main script (deprecated) | |
513 | 510 | | `toolchain_*.sh` | Frontend scripts for specific toolchains | |
514 | 511 | | `scripts/lib/config_manager.sh` | Configuration management | |
515 | 512 | | `scripts/lib/package_manager.sh` | Package installation logic | |
516 | 513 | | `scripts/lib/user_interface.sh` | User interaction and output | |
517 | 514 | | `scripts/common_vars.sh` | Shared variables and defaults | |
518 | 515 | | `scripts/tool_kit.sh` | Utility functions and macros | |
519 | 516 | | `scripts/parse_if.py` | Parser for IF_XYZ constructs | |
520 | | -| `checksums.sha256` | Pre-calculated SHA256 checksums for packages | |
| 517 | +| `install/<pkg>/install_successful` | Per-package install lock/checksum file generated by `write_checksums` | |
521 | 518 |
|
522 | 519 | ### Script Structure Details |
523 | 520 |
|
|
0 commit comments