Skip to content

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:

  • system also groups into topics, but shows the whole path containing the module files.
  • arch groups into the hardware architecture; either CPU or GPU.
  • vendor groups 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.