Available Toolchains and Toolchain Compatibility: Difference between revisions

From Research Computing Center Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(74 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Sapelo2]]
[[Category:Sapelo2]]
'''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 [https://easybuild.readthedocs.io/en/latest/ EasyBuild] and [https://easybuild.readthedocs.io/en/latest/Concepts_and_Terminology.html#toolchains toolchains]
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 [https://easybuild.readthedocs.io/en/latest/ EasyBuild] and [https://easybuild.readthedocs.io/en/latest/Concepts_and_Terminology.html#toolchains toolchains]


==Avaliable toolchains on cluster==
==Available foss and intel toolchains on Sapelo2==
 
{| class="wikitable sortable" width="100%" border="1" cellspacing="0" cellpadding="2" align="left"
* Common compiler toolchains on the Sapelo2 cluster:
|-
 
! scope="col" width="100px" |Name
{| width="100%" border="1" cellspacing="0" cellpadding="2" align="left" class="wikitable sortable"
! scope="col" width="100px" |Version
! scope="col" width="100px" |Compiler(s)
! scope="col" width="100px" |MPI library
! scope="col" width="100px" |Linear algebra library
! scope="col" width="100px" |FFT
|-
<!--LIST BEGIN-->|-
| rowspan="6" |foss
|2023b
|GCC/13.2.0
|OpenMPI/4.1.6
|FlexiBLAS/3.3.1, ScaLAPACK/2.2.0
|FFTW/3.3.10, FFTW.MPI/3.3.10
|-
|2023a
|GCC/12.3.0
|OpenMPI/4.1.5
|FlexiBLAS/3.3.1, ScaLAPACK/2.2.0
|FFTW/3.3.10, FFTW.MPI/3.3.10
|-
|2022b
|GCC/12.2.0
|OpenMPI/4.1.4
|FlexiBLAS/3.2.1, ScaLAPACK/2.2.0
|FFTW/3.3.10, FFTW.MPI/3.3.10
|-
|2022a
|GCC/11.3.0
|OpenMPI/4.1.4
|FlexiBLAS/3.2.0, ScaLAPACK/2.2.0
|FFTW/3.3.10, FFTW.MPI/3.3.10
|-
|2021b
| GCC/11.2.0
|OpenMPI/4.1.1
| FlexiBLAS/3.0.4, ScaLAPACK/2.1.0
|FFTW/3.3.10
|-
|2019b||GCC/8.3.0||OpenMPI/3.1.4||OpenBLAS/0.3.7, ScaLAPACK/2.0.2||FFTW/3.3.8
|-
| rowspan="6" |gompi
|2023b
|GCC/13.2.0
|OpenMPI/4.1.6
| rowspan="6" |
| rowspan="6" |
|-
|2023a
|GCC/12.3.0
|OpenMPI/4.1.5
|-
|2022b
|GCC/12.2.0
|OpenMPI/4.1.4
|-
|2022a
|GCC/11.3.0
|OpenMPI/4.1.4
|-
| 2021b
| GCC/11.2.0
|OpenMPI/4.1.1
|-
|-
! scope="col" width="100px"| Name
|2019b|| GCC/8.3.0||OpenMPI/3.1.4
! scope="col" width="100px"| Version
! scope="col" width="100px"| Compiler(s)
! scope="col" width="100px"| MPI library
! scope="col" width="100px"| Linear algebra library
! scope="col" width="100px"| FFT
|-
|-
<!--LIST BEGIN-->
| rowspan="3" | gfbf
| 2023b|| GCC/13.2.0 || rowspan="3" | || OpenBLAS/0.3.24,FlexiBLAS/3.3.1  || FFTW/3.3.10 
|-
|-
| foss || 2019b || GCC/8.3.0 || OpenMPI/3.1.4 || OpenBLAS/0.3.7, ScaLAPACK/2.0.2 || FFT/3.3.8
| 2023a|| GCC/12.3.0 || OpenBLAS/0.3.23,FlexiBLAS/3.3.|| FFTW/3.3.10 
|-
|-
| gompi || 2019b || GCC/8.3.0 || OpenMPI/3.1.4 || ||  
| 2022b|| GCC/12.2.0 || OpenBLAS/0.3.21,FlexiBLAS/3.2.1  || FFTW/3.3.10
|-
|-
| GCC || 6.4.0-2.28, 8.3.0, 9.2.0 || GCC || ||  ||  
|GCC||13.2.0, 12.3.0, 12.2.0, 11.3.0, 11.2.0, 10.2.0, 8.3.0|| rowspan="2" | || rowspan="2" | || rowspan="2" |  
|-
|-
| GCCcore || 6.4.0, 8.3.0, 9.2.0 || GCCcore ||  ||  ||
|GCCcore||13.2.0, 12.3.0, 12.2.0, 11.3.0, 11.2.0, 10.2.0, 8.3.0
|-
|-
<!--LIST END-->
<!--LIST END-->
|}
|}


* Compiler toolchains with GPU/CUDA support on the Sapelo2 cluster:
{| class="wikitable sortable" width="100%" border="1" cellspacing="0" cellpadding="2" align="left"
 
|-
{| width="100%" border="1" cellspacing="0" cellpadding="2" align="left" class="wikitable sortable"
! scope="col" width="100px" |Name
! scope="col" width="100px" |Version
! scope="col" width="100px" |GCCcore
! scope="col" width="100px" |Intel Compiler (icc, icpc, ifort)
! scope="col" width="100px" |MPI library
! scope="col" width="100px" |MKL, FFT
|-
<!--LIST BEGIN-->|-
| rowspan="4" |intel
|2023b
|GCCcore/13.2.0
|intel-compilers/2023.2.1
|impi/2021.10.0
|imkl/2023.2.0 imkl-FFTW/2023.2.0
|-
|2023a
|GCCcore/12.3.0
|intel-compilers/2023.1.0
|impi/2021.9.0
|imkl/2023.1.0 imkl-FFTW/2023.1.0
|-
|2022a
|GCCcore/11.3.0
|intel-compilers/2022.1.0
|impi/2021.6.0
|imkl/2022.1.0 imkl-FFTW/2022.1.0
|-
|2021b
|GCCcore/11.2.0
|intel-compilers/2021.4.0
|impi/2021.4.0
|imkl/2021.4.0 imkl-FFTW/2021.4.0
|-
| rowspan="4" |iimpi
|2023b
|GCCcore/13.2.0
|intel-compilers/2023.2.1
|impi/2021.10.0
| rowspan="8" |
|-
|2023a
|GCCcore/12.3.0
|intel-compilers/2023.1.0
|impi/2021.9.0
|-
|2022a
|GCCcore/11.3.0
|intel-compilers/2022.1.0
|impi/2021.6.0
|-
|-
! scope="col" width="100px"| Name
|2021b
! scope="col" width="100px"| Version
|GCCcore/11.2.0
! scope="col" width="100px"| Compiler(s)
|intel-compilers/2021.4.0
! scope="col" width="100px"| MPI library
|impi/2021.4.0
! scope="col" width="100px"| Linear algebra library
! scope="col" width="100px"| FFT
|-
|-
<!--LIST BEGIN-->
| rowspan="4" |intel-compilers
|2023.2.1
|GCCcore/13.2.0
| rowspan="4" |
|-
|-
| 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
|2023.1.0  
|GCCcore/12.3.0
|-
|-
| gompic || 2019b || GCC/8.3.0, CUDA/10.1.243 || OpenMPI/3.1.4 ||  ||
|2022.1.0
|GCCcore/11.3.0
|-
|-
| gcccuda || 2019b || GCC/8.3.0, CUDA/10.1.243 ||  ||  ||
|2021.4.0
|GCCcore/11.2.0
|-
|-
<!--LIST END-->
<!--LIST END-->
Line 56: Line 161:


For a complete list of EasyBuild toolchains, please refer to [https://easybuild.readthedocs.io/en/latest/version-specific/toolchains.html#vsd-list-toolchains List_of_known_toolchains]
For a complete list of EasyBuild toolchains, please refer to [https://easybuild.readthedocs.io/en/latest/version-specific/toolchains.html#vsd-list-toolchains List_of_known_toolchains]
------
------
[[#top|Back to Top]]
[[#top|Back to Top]]
Line 62: Line 166:
==Toolchain compatibility==
==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:
*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 all modules are built with '''the same or compatible toolchains'''. You can check this by looking into software modules' names. If you load more than one module and some toolchains are incompatible, you will receive the following Lmod error:


<pre class="gscript">
<pre class="gscript">
Line 69: Line 173:
</pre>
</pre>


Toolchains belonging to GCC/8.3.0 family are all compatible with each other. They are shown as below:
*When loading a '''conflicting module,''' one or more dependent modules of the software you previously loaded may be replaced. Most likely the software you loaded earlier got broken because of this.


*Table below gives examples of compatible toolchains. Multiple software modules built with compatible toolchains can be loaded together in one computational job or one interactive session:
*
{| class="wikitable"
|+
!Toolchain Family
!Compatible Toolchains
|-
| rowspan="6" |foss
|foss/2023b , gompi/2023b , gfbf/2023b, GCC/13.2.0 , GCCcore/13.2.0
|-
|foss/2023a , gompi/2023a , gfbf/2023a, GCC/12.3.0 , GCCcore/12.3.0
|-
|foss/2022b , gompi/2022b , gfbf/2022b, GCC/12.2.0 , GCCcore/12.2.0
|-
|foss/2022a , gompi/2022a , GCC/11.3.0 , GCCcore/11.3.0
|-
|foss/2021b , gompi/2021b , GCC/11.2.0 , GCCcore/11.2.0
|-
|foss/2019b , gompi/2019b , GCC/8.3.0 , GCCcore/8.3.0
|-
| rowspan="4" |intel
|intel/2023b , iimpi/2023b , intel-compilers/2023.2.1 , GCCcore/13.2.0
|-
|intel/2023a , iimpi/2023a , intel-compilers/2023.1.0 , GCCcore/12.3.0
|-
|intel/2022a , iimpi/2022a , intel-compilers/2022.1.0 , GCCcore/11.3.0
|-
|intel/2021b , iimpi/2021b , intel-compilers/2021.4.0 , GCCcore/11.2.0
|}


[[File:Sapelo2 common compatible toolchains – GCC8.3.jpg]]


------
------
[[#top|Back to Top]]
[[#top|Back to Top]]

Latest revision as of 14:04, 5 August 2024


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

Available foss and intel toolchains on Sapelo2

Name Version Compiler(s) MPI library Linear algebra library FFT
foss 2023b GCC/13.2.0 OpenMPI/4.1.6 FlexiBLAS/3.3.1, ScaLAPACK/2.2.0 FFTW/3.3.10, FFTW.MPI/3.3.10
2023a GCC/12.3.0 OpenMPI/4.1.5 FlexiBLAS/3.3.1, ScaLAPACK/2.2.0 FFTW/3.3.10, FFTW.MPI/3.3.10
2022b GCC/12.2.0 OpenMPI/4.1.4 FlexiBLAS/3.2.1, ScaLAPACK/2.2.0 FFTW/3.3.10, FFTW.MPI/3.3.10
2022a GCC/11.3.0 OpenMPI/4.1.4 FlexiBLAS/3.2.0, ScaLAPACK/2.2.0 FFTW/3.3.10, FFTW.MPI/3.3.10
2021b GCC/11.2.0 OpenMPI/4.1.1 FlexiBLAS/3.0.4, ScaLAPACK/2.1.0 FFTW/3.3.10
2019b GCC/8.3.0 OpenMPI/3.1.4 OpenBLAS/0.3.7, ScaLAPACK/2.0.2 FFTW/3.3.8
gompi 2023b GCC/13.2.0 OpenMPI/4.1.6
2023a GCC/12.3.0 OpenMPI/4.1.5
2022b GCC/12.2.0 OpenMPI/4.1.4
2022a GCC/11.3.0 OpenMPI/4.1.4
2021b GCC/11.2.0 OpenMPI/4.1.1
2019b GCC/8.3.0 OpenMPI/3.1.4
gfbf 2023b GCC/13.2.0 OpenBLAS/0.3.24,FlexiBLAS/3.3.1 FFTW/3.3.10
2023a GCC/12.3.0 OpenBLAS/0.3.23,FlexiBLAS/3.3.1 FFTW/3.3.10
2022b GCC/12.2.0 OpenBLAS/0.3.21,FlexiBLAS/3.2.1 FFTW/3.3.10
GCC 13.2.0, 12.3.0, 12.2.0, 11.3.0, 11.2.0, 10.2.0, 8.3.0
GCCcore 13.2.0, 12.3.0, 12.2.0, 11.3.0, 11.2.0, 10.2.0, 8.3.0
Name Version GCCcore Intel Compiler (icc, icpc, ifort) MPI library MKL, FFT
intel 2023b GCCcore/13.2.0 intel-compilers/2023.2.1 impi/2021.10.0 imkl/2023.2.0 imkl-FFTW/2023.2.0
2023a GCCcore/12.3.0 intel-compilers/2023.1.0 impi/2021.9.0 imkl/2023.1.0 imkl-FFTW/2023.1.0
2022a GCCcore/11.3.0 intel-compilers/2022.1.0 impi/2021.6.0 imkl/2022.1.0 imkl-FFTW/2022.1.0
2021b GCCcore/11.2.0 intel-compilers/2021.4.0 impi/2021.4.0 imkl/2021.4.0 imkl-FFTW/2021.4.0
iimpi 2023b GCCcore/13.2.0 intel-compilers/2023.2.1 impi/2021.10.0
2023a GCCcore/12.3.0 intel-compilers/2023.1.0 impi/2021.9.0
2022a GCCcore/11.3.0 intel-compilers/2022.1.0 impi/2021.6.0
2021b GCCcore/11.2.0 intel-compilers/2021.4.0 impi/2021.4.0
intel-compilers 2023.2.1 GCCcore/13.2.0
2023.1.0 GCCcore/12.3.0
2022.1.0 GCCcore/11.3.0
2021.4.0 GCCcore/11.2.0

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


Back to Top

Toolchain compatibility

  • 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 all modules are built with the same or compatible toolchains. You can check this by looking into software modules' names. If you load more than one module and some toolchains are incompatible, you will receive the following Lmod error:
Lmod has detected the following error:  
These module(s) exist but cannot be loaded as requested
  • When loading a conflicting module, one or more dependent modules of the software you previously loaded may be replaced. Most likely the software you loaded earlier got broken because of this.
  • Table below gives examples of compatible toolchains. Multiple software modules built with compatible toolchains can be loaded together in one computational job or one interactive session:
Toolchain Family Compatible Toolchains
foss foss/2023b , gompi/2023b , gfbf/2023b, GCC/13.2.0 , GCCcore/13.2.0
foss/2023a , gompi/2023a , gfbf/2023a, GCC/12.3.0 , GCCcore/12.3.0
foss/2022b , gompi/2022b , gfbf/2022b, GCC/12.2.0 , GCCcore/12.2.0
foss/2022a , gompi/2022a , GCC/11.3.0 , GCCcore/11.3.0
foss/2021b , gompi/2021b , GCC/11.2.0 , GCCcore/11.2.0
foss/2019b , gompi/2019b , GCC/8.3.0 , GCCcore/8.3.0
intel intel/2023b , iimpi/2023b , intel-compilers/2023.2.1 , GCCcore/13.2.0
intel/2023a , iimpi/2023a , intel-compilers/2023.1.0 , GCCcore/12.3.0
intel/2022a , iimpi/2022a , intel-compilers/2022.1.0 , GCCcore/11.3.0
intel/2021b , iimpi/2021b , intel-compilers/2021.4.0 , GCCcore/11.2.0



Back to Top