Page tree
Skip to end of metadata
Go to start of metadata

Module naming scheme

All modules available on Viking follow the same general naming structure: `category/name/version[-toolchain][-suffix]` (where [] indicates this parameter is not present in all modules):

  • category: the (loose) category the software falls under, e.g. `bio`, `chem`, `compiler`, ...
  • name: the name of the software
  • version: the version of the software
  • toolchain: if compiled with a particular toolchain, the name and version of the toolchain used (and automatically loaded)
  • suffix: a handful of modules contain a suffix, which can indicate:
    • a particular requirement (e.g. needing Python 2.x)
    • specific architecture (e.g. x86_64) - not relevant on Viking since all nodes have the same architecture
    • different configurations where software supports it, e.g. MPI/non-MPI versions, or using MKL without intel compilers

Although the category, name and version are required for all modules, not all modules will have a toolchain or suffix in the name.

Compatible Toolchains

It is always important that all modules loaded simultaneously were built with compatible toolchains. When considering which modules are compatible:

  1. ensure that all modules belong to the same "toolchain generation"
  2. use modules only from one "branch":
    • `foss`:  GCCcore, GCC, gompi, foss
    • `intel`: GCCcore, iccifort/intel-compilers, iimpi, intel
    • `fosscuda`: GCCcore, GCC, gcccuda, gompic, fosscuda
  3. note that modules built with "GCCcore" are compatible with all branches
  4. if a module has no toolchain component in the name, it should be compatible with any other toolchain. This is usually the case for software provided as a pre-compiled, statically-linked binary.

Toolchain compatibility (CPU-only)

The following table indicates the compatibility of the main toolchains used on Viking (red is used for the "foss", blue for "intel" branches):

Toolchain generation

(sub)toolchain
minimal compilerfull compilercompiler + MPIcompiler, MPI + numerical libraries
2021a

GCCcore-10.3.0GCC-10.3.0gompi-2021afoss-2021a
intel-compilers-2021.2.0iimpi-2021aintel-2021a
2020b

GCCcore-10.2.0GCC-10.2.0gompi-2020bfoss-2020b
(not installed)--
2020a

GCCcore-9.3.0GCC-9.3.0gompi-2020afoss-2020a
iccifort-2021.1.217iimpi-2020aintel-2020a
2019b

GCCcore-8.3.0GCC-8.3.0gompi-2019bfoss-2019b
iccifort-2019.5.281iimpi-2019bintel-2019b
2019a

GCCcore-8.2.0GCC-8.2.0-2.31.1gompi-2019afoss-2019a
iccifort-2019.1.144-GCC-8.2.0-2.31.1iimpi-2019aintel-2019a
2018b

GCCcore-7.3.0GCC-7.3.0-2.30gompi-2018bfoss-2018b
iccifort-2018.3.222-GCC-7.3.0-2.30iimpi-2018bintel-2018b


Toolchain compatibility (with CUDA)

The following table indicates the compatibility of the main toolchains used on Viking (red is used for the CPU-only "foss", yellow for "foss" with CUDA support, blue for "intel" branches):

Toolchain generation

(sub)toolchainNotes
minimal compilerfull compilercompatible CUDAcompiler (+CUDA)compiler (+CUDA) + MPIcompiler (+CUDA), MPI + numerical libraries
2021a

GCCcore-10.3.0GCC-10.3.0CUDA-11.3.1-gompi-2021afoss-2021a

CUDA and non-CUDA toolchains merged from 2021a onwards.

Modules built with CUDA are now distinguished from CPU-only counterparts with the `-CUDA-(cudaversion)` suffix. As a result, `gcccuda` and `fosscuda` are no longer used.

intel-compilers-2021.2.0CUDA-11.3.1-iimpi-2021aintel-2021a
2020b

GCCcore-10.2.0GCC-10.2.0-gompi-2020bfoss-2020b
CUDA-11.1.1gcccuda-2020bgompic-2020bfosscuda-2020b
(not installed)

--
2020a

GCCcore-9.3.0GCC-9.3.0-gompi-2020afoss-2020a
CUDA-11.0.2gcccuda-2020agompic-2020afosscuda-2020a
iccifort-2021.1.217

iimpi-2020aintel-2020a
2019b

GCCcore-8.3.0GCC-8.3.0-gompi-2019bfoss-2019b
CUDA-10.1.243gcccuda-2019bgompic-2019bfosscuda-2019b
iccifort-2019.5.281

iimpi-2019bintel-2019b
2019a

GCCcore-8.2.0GCC-8.2.0-2.31.1-gompi-2019afoss-2019a
CUDA-10.1.105gcccuda-2019agompic-2019afosscuda-2019a
iccifort-2019.1.144-GCC-8.2.0-2.31.1

iimpi-2019aintel-2019a
2018b

GCCcore-7.3.0GCC-7.3.0-2.30-gompi-2018bfoss-2018b
CUDA-10.0.130gcccuda-2018bgompic-2018bfosscuda-2018b
iccifort-2018.3.222-GCC-7.3.0-2.30

iimpi-2018bintel-2018b


Common toolchains by components

For modules built without CUDA support:

ToolchainCompiler(s)MPI libraryNumerical librariesNotes
GCCGCC


gompiGCCOpenMPI

fossGCCOpenMPI

ScaLAPACK
FFTW3
OpenBLAS



(OpenBLAS via FlexiBLAS from 2021a onwards)
iccifort / intel-compilersicc
ifort
Intel MPI
renamed to intel-compilers from 2021a onwards due to move to OneAPI
iimpiicc
ifort
Intel MPI

intelicc
ifort
Intel MPIIntel MKL


for modules with CUDA enabled:

ToolchainCompiler(s)MPI libraryNumerical librariesNotes
gcccudaGCC


gompicGCCOpenMPI

fosscudaGCCOpenMPI

ScaLAPACK
FFTW3
OpenBLAS



(OpenBLAS via FlexiBLAS from 2021a onwards)
iccifort / intel-compilersicc
ifort
Intel MPI
renamed to intel-compilers from 2021a onwards due to move to OneAPI
iimpicicc
ifort
Intel MPI

intelcudaicc
ifort
Intel MPIIntel MKL


  • No labels