Software

When you connect to the IQ HPC Platform, your environment contains only minimal software. You can add more from a vast selection of available software. Pre-installed and optimised for HPC, these packages are the same ones that are available on the national clusters, which guarantees that your jobs can run reproducibly on all clusters.

Adding software to your environment is mostly done with the module command. If you are not familiar with its usage, read using modules first. Briefly, you can list loaded modules with module list, search for modules with module spider, and add them to your environment with module load. For instance:

[alice@ip09 ~]$ module list

Currently Loaded Modules:
  1) CCconfig            6) ucx/1.14.1            11) flexiblas/3.3.1
  2) gentoo/2023   (S)   7) libfabric/1.18.0      12) imkl/2023.2.0            (math)
  3) gcccore/.12.3 (H)   8) pmix/4.2.4            13) StdEnv/2023              (S)
  4) gcc/12.3      (t)   9) ucc/1.2.0             14) mii/1.1.2
  5) hwloc/2.9.1        10) openmpi/4.1.5    (m)  15) slurm-completion/23.02.7

  Where:
   S:     Module is Sticky, requires --force to unload or purge
   m:     MPI implementations / Implémentations MPI
   math:  Mathematical libraries / Bibliothèques mathématiques
   t:     Tools for development / Outils de développement
   H:                Hidden Module

[alice@ip09 ~]$ module spider gromacs

--------------------------------------------------------------------------------------
  gromacs:
--------------------------------------------------------------------------------------
    Description:
      GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
      Newtonian equations of motion for systems with hundreds to millions of
      particles.

     Versions:
        gromacs/2016.6
        gromacs/2020.4
        gromacs/2020.6
        gromacs/2021.2
        gromacs/2021.4
        gromacs/2021.6
        gromacs/2022.2
        gromacs/2022.3
        gromacs/2023
        gromacs/2023.2
        gromacs/2023.3
        gromacs/2023.5
        gromacs/2024.1
        gromacs/2024.4
     Other possible modules matches:
        gromacs-colvars  gromacs-cp2k  gromacs-ls  gromacs-plumed  gromacs-ramd
        gromacs-swaxs

--------------------------------------------------------------------------------------
  To find other possible module matches execute:

      $ module -r spider '.*gromacs.*'

--------------------------------------------------------------------------------------
  For detailed information about a specific "gromacs" package (including how to load
  the modules) use the module's full name. Note that names that have a trailing (E)
  are extensions provided by other modules. For example:

     $ module spider gromacs/2024.4
--------------------------------------------------------------------------------------

[alice@ip09 ~]$ module spider gromacs/2024.4

--------------------------------------------------------------------------------------
  gromacs: gromacs/2024.4
--------------------------------------------------------------------------------------
    Description:
      GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
      Newtonian equations of motion for systems with hundreds to millions of
      particles.

    Properties:
      Chemistry libraries/apps / Logiciels de chimie

    You will need to load all module(s) on any one of the lines below before the
    "gromacs/2024.4" module is available to load.

      StdEnv/2023  gcc/12.3  openmpi/4.1.5
      StdEnv/2023  gcc/12.3  openmpi/4.1.5  cuda/12.2

    Help:
      Description
      ===========
      GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
      Newtonian equations of motion for systems with hundreds to millions of
      particles.

      More information
      ================
       - Homepage: http://www.gromacs.org

[alice@ip09 ~]$ module load StdEnv/2023 gcc/12.3 openmpi/4.1.5
[alice@ip09 ~]$ module load gromacs/2024.4
[alice@ip09 ~]$ module list

Currently Loaded Modules:
  1) CCconfig                         10) hwloc/2.9.1
  2) gentoo/2023              (S)     11) ucx/1.14.1
  3) imkl/2023.2.0            (math)  12) libfabric/1.18.0
  4) StdEnv/2023              (S)     13) pmix/4.2.4
  5) mii/1.1.2                        14) ucc/1.2.0
  6) slurm-completion/23.02.7         15) openmpi/4.1.5    (m)
  7) gcc/12.3                 (t)     16) fftw/3.3.10      (math)
  8) flexiblas/3.3.1                  17) gromacs/2024.4   (chem)
  9) gcccore/.12.3            (H)

  Where:
   S:     Module is Sticky, requires --force to unload or purge
   m:     MPI implementations / Implémentations MPI
   math:  Mathematical libraries / Bibliothèques mathématiques
   t:     Tools for development / Outils de développement
   chem:  Chemistry libraries/apps / Logiciels de chimie
   H:                Hidden Module

Software environment version

The Alliance team in charge of software periodically releases new versions of the environment, such as StdEnv/2023 or StdEnv/2020. On the IQ HPC Platform, StdEnv/2023 is the environment initially loaded when you connect. The other environments are available and can be loaded. For instance:

[alice@ip09 ~]$ module load StdEnv/2020

Inactive Modules:
  1) slurm-completion

Due to MODULEPATH changes, the following have been reloaded:
  1) mii/1.1.2

The following have been reloaded with a version change:
  1) StdEnv/2023 => StdEnv/2020           5) libfabric/1.18.0 => libfabric/1.10.1
  2) gcccore/.12.3 => gcccore/.9.3.0      6) openmpi/4.1.5 => openmpi/4.0.3
  3) gentoo/2023 => gentoo/2020           7) ucx/1.14.1 => ucx/1.8.0
  4) imkl/2023.2.0 => imkl/2020.1.217

Optimisation target

Alliance software available on the IQ HPC Platform is optimised for x86 processors that support the AVX2 instruction set. It was not compiled to use more recent instruction sets such as AVX512. This is the best choice to support both the Intel and AMD CPUs on the compute nodes while ensuring good performance. If you compile your code with GCC, the corresponding optimisation option is -march=core-avx2. With Intel compilers, use -xCORE-AVX2.

We do not recommend to use a different architecture (e.g. module load arch/avx512) or to compile your code with a different option (e.g. -march=native or -xHost) since that can lead to compatibility issues.

BLAS/LAPACK libraries

The Alliance software offers several implementations of the BLAS and LAPACK libraries for linear algebra. Intel MKL is used by default on the IQ HPC Platform and most Alliance clusters.

Software guides

The following pages detail the use of specific software packages. Some are also available on the national clusters, in which case the focus is on the specificities of using that software on the IQ HPC Platform.