HPC
Software Stack Installation is the process of building the "Middleware" that sits between
the Operating System and the user's scientific application.
In a normal
server, you might just run apt-get install python. In HPC, this is forbidden.
Why?
Because the generic version of Python from the internet is compiled for
"generic" CPUs. It doesn't know how to use the advanced vector
instructions (AVX-512) of your multimillion-dollar supercomputer. To get speed,
you must compile everything from source specific to your hardware.
Here is the
detailed breakdown of the "Pyramid" architecture, the concept of
Environment Modules, and the automation tools, followed by the downloadable
Word file.
1. The
Software Pyramid
You build
the stack in a strict order. If you change the bottom, the top falls.
2. The
Solution: Environment Modules (Lmod)
HPC faces a
unique problem: "Dependency Hell."
The
Solution: You
install everything into separate folders (e.g., /apps/python/3.6 and /apps/python/3.9)
and use a tool called Lmod (Lua Modules).
3. The
Automation: Spack & EasyBuild
Compiling
thousands of scientific packages by hand is impossible. (GROMACS depends on
FFTW, which depends on MPI, which depends on a specific Compiler...).
HPC admins
use Scientific Package Managers to automate this:
4. The
Modern Twist: Containers (Apptainer)
Sometimes,
compiling from source is too hard or the software is too old.
5. Key Applications &
Software
|
Category |
Software |
Usage |
|
Module System |
Lmod |
The tool
that allows users to load/unload software dynamically (module load). |
|
Package Manager |
Spack |
Automates
compiling complex scientific dependency trees (Python-based). |
|
EasyBuild |
Automates
building software stacks (popular in European HPC). |
|
|
Compilers |
GCC |
The base
open-source compiler collection. |
|
Intel OneAPI |
Highly
optimized for Intel CPUs (Xeon). |
|
|
AOCC |
Optimized
for AMD EPYC processors. |
|
|
Containers |
Apptainer |
Secure
container runtime for HPC (replaces Docker). |