Installation Guide¶
This page provides a practical, command‑oriented installation guide for QS³‑ED2. Conceptual overview, design philosophy, and citation information are documented on the main documentation home page.
This guide focuses strictly on:
- Building the code
- Verifying the build
- Running examples
- Ensuring reproducibility on HPC systems
1. Requirements¶
Required¶
- Fortran compiler (tested with
ifort,gfortran) - BLAS / LAPACK
- OpenBLAS (preferred)
- Intel MKL (automatic fallback supported)
- GNU Make
- POSIX shell
Optional (recommended for HPC)¶
- Intel MKL
- Environment modules
2. Obtain the Source¶
If building from a fresh Git checkout:
3. Configure¶
Basic¶
or explicitly specify compiler:
BLAS / LAPACK detection¶
The configure script attempts, in order:
- OpenBLAS
- Generic BLAS / LAPACK
- Intel MKL (
-qmkl=parallel)
Manual override examples:
4. Build¶
This produces:
Important design choices:
- The executable is not installed into PATH
- Example scripts locate the binary explicitly
- No recompilation occurs inside example runs
This avoids environment‑dependent execution failures on HPC systems.
5. Regression Tests¶
Lightweight smoke test¶
Runs Example 1 only. Intended for:
- CI
- quick validation
Extended regression suite¶
Runs Examples 1–9 sequentially.
Recommended for:
- new clusters
- compiler changes
- BLAS / MKL changes
6. Running Examples Manually¶
Example:
All example scripts:
- use the already built executable
- never recompile sources
- never rely on PATH
- accept explicit override via
ED2_EXE
Example:
Helper programs (mk_input) are built at make time and executed directly by scripts.
7. Thread Control (IMPORTANT)¶
QS³‑ED2 uses:
- OpenMP in the main solver
- threaded BLAS / LAPACK
To avoid nested parallelism:
Users may tune these for benchmarking.
8. Reproducibility Checklist¶
For numerical reproducibility, record:
- compiler name and version
- BLAS / LAPACK implementation and version
- OpenMP thread count
- BLAS thread count
- success of
make checkandmake check-long
Floating‑point roundoff may vary across systems, but physical observables should remain consistent within numerical precision.
9. Cleaning¶
Remove configuration:
10. Installation (Optional)¶
Installation is not required for normal usage.
If desired:
Prefix can be set via:
11. Troubleshooting¶
BLAS not detected¶
or
OpenMP¶
Ensure compiler supports OpenMP:
- ifort: enabled by default
- gfortran: may require
-fopenmp
Test failures¶
This installation procedure is designed for portability, reproducibility, and HPC robustness.