Available Toolchains and Toolchain Compatibility: Difference between revisions

From Research Computing Center Wiki
Jump to navigation Jump to search
Line 68: Line 68:
These module(s) exist but cannot be loaded as requested
These module(s) exist but cannot be loaded as requested
</pre>
</pre>
Also please note that, when a '''conflicting module''' is loaded, one or more dependent modules of the software previously loaded could be replaced, and thus results in the software previously loaded being broken.


Toolchains belonging to GCC/8.3.0 family are all compatible with each other. They are shown as below. The blue connection lines with arrows give toolchain build hierarchy, for example, GCC-8.3.0 is built on the top of GCCcore-8.3.0.
Toolchains belonging to GCC/8.3.0 family are all compatible with each other. They are shown as below. The blue connection lines with arrows give toolchain build hierarchy, for example, GCC-8.3.0 is built on the top of GCCcore-8.3.0.
Line 75: Line 73:
[[File:Sapelo2 common compatible toolchains – GCC8.3 resized.jpg]]
[[File:Sapelo2 common compatible toolchains – GCC8.3 resized.jpg]]


Also please note that, when a '''conflicting module''' is loaded, one or more dependent modules of the software previously loaded could be replaced, and thus results in the software previously loaded being broken.
------
------
[[#top|Back to Top]]
[[#top|Back to Top]]

Revision as of 14:47, 9 July 2020

Note: This page is for using new queueing system on the Sapelo2 cluster. This page is still under development as of June 22-26, 2020.

If you are current Sapelo2 users, please come back later.


We use EasyBuild to build most of the software modules on the Sapelo2 cluster. Easybuild is a software build and installation framework that allows us to manage scientific software on High Performance Computing (HPC) systems in an efficient way. EasyBuild employs so-called compiler toolchains or, simply toolchains for short, in handling the build and installation processes. A typical toolchain consists of one or more compilers, usually put together with some libraries for specific functionality, e.g., for using an MPI stack for distributed computing, or which provide optimized routines for commonly used math operations, e.g., the well-known BLAS/LAPACK APIs for linear algebra routines. For detailed info about EasyBuild and its toolchains, please refer to EasyBuild and toolchains

Avaliable toolchains on cluster

  • Common compiler toolchains on the Sapelo2 cluster:
Name Version Compiler(s) MPI library Linear algebra library FFT
foss 2019b GCC/8.3.0 OpenMPI/3.1.4 OpenBLAS/0.3.7, ScaLAPACK/2.0.2 FFT/3.3.8
gompi 2019b GCC/8.3.0 OpenMPI/3.1.4
GCC 6.4.0-2.28, 8.3.0, 9.2.0 GCC
GCCcore 6.4.0, 8.3.0, 9.2.0 GCCcore
  • Compiler toolchains with GPU/CUDA support on the Sapelo2 cluster:
Name Version Compiler(s) MPI library Linear algebra library FFT
fosscuda 2019b GCC/8.3.0, CUDA/10.1.243 OpenMPI/3.1.4 OpenBLAS/0.3.7, ScaLAPACK/2.0.2 FFT/3.3.8
gompic 2019b GCC/8.3.0, CUDA/10.1.243 OpenMPI/3.1.4
gcccuda 2019b GCC/8.3.0, CUDA/10.1.243

For a complete list of EasyBuild toolchains, please refer to List_of_known_toolchains


Back to Top

Toolchain compatibility

On Sapelo2, software modules built by EasyBuild generally have names in a format like Name/Version-Toolchain. When you load more than one software module built by EasyBuild, please make sure that they are built with the same or compatible toolchains. You can check this by looking into software modules' names. If there are any incompatible toolchains involved in loading modules, it will end up with failing dependencies or Lmod errors, like this:

Lmod has detected the following error:  
These module(s) exist but cannot be loaded as requested

Toolchains belonging to GCC/8.3.0 family are all compatible with each other. They are shown as below. The blue connection lines with arrows give toolchain build hierarchy, for example, GCC-8.3.0 is built on the top of GCCcore-8.3.0.

Sapelo2 common compatible toolchains – GCC8.3 resized.jpg

Also please note that, when a conflicting module is loaded, one or more dependent modules of the software previously loaded could be replaced, and thus results in the software previously loaded being broken.


Back to Top