DCC software stack


DCC provides a basic software stack enabling users a multitude of programs. The software stack is only available on the LSF cluster.

This document contains information on how to enable the software stack, please see the following pages on how to use certain packages with their own sub-set modules:

The software stack is based on environment modules.

Enabling a software stack

A word of caution before proceeding: Enabling this software stack will disable the regular modules available on the LSF cluster.

To enable the software stack all that is needed is to execute the following command:

source /dtu/sw/dcc/dcc-sw.bash

This will enable all modules the software stack holds (and disable all regular modules). To always enable this software stack, add the following to your .bashrc (ensure this is added at the bottom of your .bashrc to not clash with the system wide installations):

if [ -d /dtu/sw/dcc ]; then
   source /dtu/sw/dcc/dcc-sw.bash
fi

The rest of the discussion assumes you have followed either of the above steps.

Long term supported software stacks

The purpose of the software stack is to maintain a backward/forward compatible software stack enabling users to swap full environments. Once (or sometimes twice) a year we will update the software stack by re-installing everything using new releases of software. In order to maintain a stable environment for users all software stack updates are kept separate to allow users to switch between stacks.

By typing module avail you will see something like (EXAMPLE):

module avail
-------------- /dtu/sw/dcc/software-stack --------------
2019-may-dcc-setup  2019-aug-dcc-setup dcc-setup  

... lots of other modules ...

By following Enabling a software stack the dcc-setup module will automatically get loaded. This module will always point to the latest software stack!

When starting a new project where reproducibility is important you are advised to use a fixed set of software versions. In those cases one should always do the following (EXAMPLE, use module avail to see the actual version name):

module purge
module load 2019-may-dcc-setup

which will ensure the same software stack, regardless of updates to the software stacks.

Software stack options

The software stack has a simple set of environment variables (EV) which are used as options for setting up the environment. All EV must be set before module load dcc-setup (or the equivalent version).

  • USER_COMPILER
    Choose which compiler has been used for the software stack. Currently we allow the following values (contact us for other compiler vendors/versions):
    • gnu/9.1.0 to get all software compiled with GCC 9.1.0
    • intel/19.0.3 to get all software compiled with Intel 2019.3.199
  • USER_CPUTYPE
    By default the enabled modules are pre-compiled for the architecture you are running on. This may be a specific CPU type or any of:
    avx or avx2 or avx512
    Should not be necessary to change!

If you specify a non-existing compiler you will not get anything loaded. Please be aware of any messages printed.

Basic module principles

The modules are divided into 3 sections:

  • modules shows system-wide modules which does not depend on the software stack version, this refers to compilers, MatLab, etc.
  • generic shows modules build for system-wide purposes (i.e. not optimized for any architecture)
  • <compiler>/<version> shows modules build by the corresponding compiler (and version). These are compiled for the architecture you are running on.