Software Stack

From ACCRE Wiki


Overview of Software Stack

The software stack is a suit of software ACCRE builds for the users to use. In general the ACCRE has two types of software stack: binary software stack and compiler based software stack. The binary software stack typically includes the stand-alone software which does not need to compile for installation, and the compiler based software stack contains the software that is compiled for installation from a given version of compiler (for example, GCC 10.2). Usually we use the compiler and a year tag to name the compiler based software stack.

Our current active compiler based software stack includes the followings:

  • GCC 2016b (based on GCC/5.4.0-2.26) and Intel 2016b (based on Intel/2016.3.210);
  • GCC 2017b (based on GCC/6.4.0-2.28) and Intel 2017b (based on Intel/2017.4.196);
  • GCC 2019a (based on GCC/8.2.0) and Intel 2019a (based on Intel/2019.1.144);
  • GCC 2020a (based on GCC/10.2.0);
  • GCC 2022a (still in progress, based on GCC/11.3.0)

Usually we upgrade software stack every two years, and since the 2020a software stack we only provide Intel compiler and corresponding libraries for user to use, we do not compile the software based on the Intel compiler and libraries. However if you think you really need it and you have a good reason for the request, please open a helpdesk ticket with us so we can build a specific version for you.

Sometimes to build a software also need additional cluster libraries such as MPI. Therefore, based on the compiler, we grouped some additional cluster libraries to form a general compiler tool set for the user to use. These additional cluster libraries include the MPI library (openMPI for GCC and IntelMPI for Intel compiler), blas and lapack libraries (openBLAS and ScaLAPACK for GCC and MKL for Intel), and other math libraries such as fftw. For the compiler tool set which are based on GCC compilers they are called foss tool set. The available foss tool set include the followings:

  • foss 2016b;
  • foss 2017b;
  • foss 2019a;
  • foss 2020a;
  • foss 2022a

Before foss 2022a, all of foss toolchain are hidden module so you need to load it with a dot sign:

module load foss/.2020a

For the GPU nodes, we also add in cuda into the foss tool set so on GPU we have fosscuda tool set. For all of above foss versions they also have corresponding fosscuda tool set on GPU nodes.

Software Stack on Compute Nodes

All output looks like this:
*** caught illegal operation ***
address 0x2b02bd5762bc, cause 'illegal operand'

because you compiled the R library on newer CPU but tried to run it on the older CPU. Therefore during the the running the CPU can not recognize the newer instruction set hence the program got problem.

In this case, the simplest way to resolve it is to recompile all of your R libraries on our gateway, since they are with the oldest CPU in our cluster. Or you can try the following:

#SBATCH --constraint=haswell,skylake

This means the compute node can be either haswell or skylake CPUs as listed above. This will exclude the running of sandy bridge CPU in the cluster.

LMOD

For loading the software from the stack ACCRE provides the user of Lmod. Lmod is a tool for managing software modules within a shared high-performance computing environment (e.g. the ACCRE cluster). Lmod is designed to intelligently manage, negotiate, and enforce the complex dependencies between software and libraries in a HPC environment. This should lead to better usability of administrator-installed software modules and prevent conflicts between lower-level libraries that many modules depend on.

For instructions on basic Lmod usage, please start with the excellent and concise User Guide for Lmod: [1].

Searching for available modules

Unloading specific modules

Modules collections

FAQ