Using Software¶
The ASC provides access to a large collection of software packages that may be loaded interactively or in a batch script using environment modules. The strategy used by the software and modules team at ASC is to leverage EESSI as a basis for the software stack. This gives us a basis of around 3000 software packages that have been optimized for the specific hardware available on MUSICA (AMD zen4 cpu and NVIDIA h100 gpu). What follows here is a brief overview of the EESSI project, how it gets leveraged and extended at ASC
What is EESSI?¶
The European Environment for Scientific Software Installations (EESSI) is a collaboration amoung different HPC sites and industry partners. The goal of the project is to provide a mechanism for installing a "broad range of scientific software" across a diverse range of platforms, and hardware to avoid duplicating work across HPC sites. The result for the end user is access to a uniform scientific computing environment software. EESSI is also agnostic concerning the flavor/version of Linux distribution or processor architecture is used, a full-size HPC cluster, a cloud environment or a personal workstation. EESSI does this without compromising performance.
How EESSI is used on MUSICA¶
As mentioned above, EESSI provides a base of around 3000 open
source software packages. These are available to load using
Lmod, aliased to the module
command. On top of this base, the software team at ASC provides many
additional packages, typically for software whose license is not open
source and cannot be publically distributed by EESSI.
Software stack versions¶
The EESSI and ASC software stack versions are tightly coupled.
That means software loaded from ASC/2025.06 is compatible with
software loaded from EESSI/2025.06. For example, the compilers used to
build certain software from ASC/2025.06 must be first loaded from
EESS/2025.06. For a closer look at what software is available within
the different versioned releases, please the section software stack
versions on our software
policy page.
Info
On login to MUSICA, a default software stack version will be preloaded.
As of 10.December 2025, on MUSICA the software stack version loaded by
default is 2023.06. This means that the modules EESSI/2023.06 and
ASC/2023.06 are "sticky" loaded.
Info
To view all available versions run ml --force purge && ml avail
Loading another version of the software stack will provide visibility to more recent versions.
A note on Toolchains¶
We aim to provide support for at least the following toolchains. Specific versions of the various toolchains are organized by software stack versions (see below).
foss¶
GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.
gfbf¶
GNU Compiler Collection (GCC) based compiler toolchain, including FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW.
gompi¶
GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support.
nvhpc¶
Complete toolchain based on NVIDIA HPC SDK. Includes C, C++ and FORTRAN compilers (nvidia-compilers), an MPI implementation based on OpenMPI (NVHPCX) and math libraries based on OpenBLAS and ScaLAPACK.
intel¶
Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL).
Available toolchain versions in 2023.06¶
| name | version(s) | vendor | base compiler(s) |
|---|---|---|---|
| foss | 2023a, 2023b | EESSI | GCC 12.3.0, GCC 13.2.0 |
| gfbf | 2023a, 2023b | EESSI | GCC 12.3.0, GCC 13.2.0 |
| gompi | 2023a, 2023b | EESSI | GCC 12.3.0, GCC 13.2.0 |
| nvhpc | 25.1, 25.7 | ASC | nvidia-compilers 25.1, 25.7 |
| intel* | 2023b | ASC | intel-compilers 2023.2.1 |
Available toolchains in 2025.06¶
| name | version(s) | vendor | base compiler(s) |
|---|---|---|---|
| foss | 2024a, 2025a | EESSI | GCC 13.3.0, GCC 14.2.0 |
| gfbf | 2024a, 2025a | EESSI | GCC 13.3.0, GCC 14.2.0 |
| gompi | 2024a, 2025a | EESSI | GCC 13.3.0, GCC 14.2.0 |
| nvhpc | 25.9 | ASC | nvidia-compilers 25.9 |
| intel* | 2025a | ASC | intel-compilers 2025.1.1 |
(* indicates a work in progress)
Grouping modules¶
By default we group all modules (ASC and EESSI) into topics, most
representing scientific domains. You can set your favorite grouping by
exporting an Environment varibale. With one of the following styles:
systemalso groups into topics, but shows the whole path containing the module files.archgroups into the hardware architecture; either CPU or GPU.vendorgroups into modules from EESSI and those from ASC.
Tip
Explore the different views on modules by setting the environment variable LMOD_AVAIL_STYLE
e.g.: export LMOD_AVAIL_STYLE="topics"
Architectural overview of EESSI¶
The filesystem layer¶
The (truncated) output above is organized into four groups,
the heading of each group displays the Lmod path where the
modules are being found. If a path begins with /cvmfs, this
signifies that the software is being stored on CernVM File
System (CVMFS). This
type of file system allows the software to be distributed across sites
easily by leveraging web protocols. It will also always show up as a
read-only file system on the clients. In CVMFS, the term 'repositories'
or 'repos' refers to collections of software organized for distribution.
"MUlti SIte Compute Austria" (MUSICA) is located across multiple sites.
This made CVMFS a compelling choice for distributing the ASC software
stack across the three sites. The software.eessi.io repository is
the publicly available software stack provided by the EESSI project.
Due to it's open source nature, there are some restrictions in place
around what types of software can be distributed in the EESSI repo.
For example, some licenses prohibit the public distribution of
software. This is one of the primary motivations for providing a second
(non-public) software stack - the software.asc.ac.at repo provides
another stack, built on top of EESSI and made available to ASC users
through CVMFS infrastructure.
For more information on the filesystem layer, see the docs.
The compatibility layer¶
EESSI defines a minimal filesystem hierarchy that includes a few
core libraries and tools. This is then used as the basis for all
other software built and released by the project. The idea behind the
compatibility layer is to keep interactions with the host system to
an absolute minimum, thus ensuring better portability of the software
stack across operating systems. For the ASC software stack, the approach
is to leverage the compatibility layer provided by EESSI. There are
a few low level libraries that must come from the host, typically
things like graphics or networking drivers and Slurm binaries. EESSI
provides for these additions by way of a special variant symlink called
host_injections. This will typically point to a location on the
shared storage for a specific site. It's also possible to use this as
a location for installing site specific software. More on that in the
section on compilation.
For more information on the compatibility layer, see the docs.
The software layer¶
The idea of EESSI's software layer is to provide a collection of scientific software installations. The software is installed using EasyBuild. Environment modules files are provided and manged using Lmod. EESSI builds and distributes software for a wide variety of architectures, but only the appropriate architecture for the current system will ever appear in the module search results. This is made possible by using the archspec library to detect information about the host system.
For more information on the compatibility layer, see the docs.