La version2025.3 est installée sur Kairos ( uniquement sur partition GPU) avec nvhpc25.3
Environnements logiciels
Le cluster utilise les Environment Modules pour gérer les versions des logiciels et leurs dépendances.
- module avail : liste les logiciels disponibles.
- module load <nom_du_module> : charge un outil spécifique dans votre environnement.
- module list : affiche les modules actuellement chargés.
- module purge: nettoie l’environnement en déchargeant tous les modules et permet de repartir de zéro.
CPU-x86
Exécuter module avail depuis le frontal permet d’afficher tous les modules qui peuvent être utilisés sur le nœud de login ainsi que sur les nœuds de calcul CPU.
-------/softs/x86/modulefiles/compilers_and_libraries -------
openblas/0.3.31-gcc12.3 openmpi/intel/ openmpi/gcc/ gcc/14.1
toolchain/gcc14.1 toolchain/oneapi oneapi/
-------/softs/x86/modulefiles/scientific_applications -------
fftw/ netcdf-fortran/ hdf5/ openfoam/ miniforge/ vasp/
-------/softs/x86/modulefiles/tools -------
autotools/ cmake/3.25.1 linaro-forge/
------- /softs/x86/modulefiles/gpu_modules -------
gpu_modules
Lors du travail sur le nœud frontal, si vous souhaitez voir les modules accessibles uniquement sur les nœuds GPU, afin de choisir ceux à utiliser dans votre script SLURM sans avoir besoin de vous connecter aux nœuds GPU, vous pouvez faire :
module show gpu_modules
Les bibliothèques scientifiques
oneAPI - MKL
$ module load oneapi/
You can load modules for a product belonging to oneAPI 2025.
module avail now lists oneAPI 2025 modules
$ module avail
----------------------------- /softs/x86/oneapi/2025.3/modulefiles -----------------------------
2025.3/advisor 2025.3/ishmem 2025.3/ccl 2025.3/dev-utilities
2025.3/dnnl 2025.3/mkl 2025.3/compiler-intel-llvm
2025.3/mpi 2025.3/dpct 2025.3/compiler-rt 2025.3/dpl
2025.3/tbbt 2025.3/dpl 2025.3/compiler 2025.3/umf
2025.3/dal 2025.3/vtune 2025.3/debugger
2025.3/intel_ippcp_intel64 2025.3/intel_ipp_intel64
Toolchains
Pour simplifier la configuration de l’environnement, Kairos propose des toolchains sur architecture x86. Il s’agit de méta-modules qui chargent un ensemble cohérent de compilateurs et de bibliothèques, validés pour fonctionner correctement ensemble.
1- GCC Toolchain
Inclut les compilateurs GCC, OpenMPI, and OpenBLAS
$ module purge
$ module load toolchain/gcc14.1
Loading toolchain/gcc14.1
Loading requirement: binutils/2.46 gcc/14.1 openmpi/gcc/4.1.6-gcc14.1
openblas/0.3.31-gcc14.1
$ module list
Currently Loaded Modulefiles:
1) binutils/2.46 3) openmpi/gcc/4.1.6-gcc14.1 5) toolchain/gcc14.1
2) gcc/14.1 4) openblas/0.3.31-gcc14.1
2- oneAPI Toolchain
Inclut les compilateurs Intel oneAPI (icx, ifx, icpc), Intel MPI (mpicc, mpirun), Intel MKL (Math Kernel Library) ainsi que des outils de performance (VTune, Advisor).
$ module purge
$ module load toolchain/oneapi2025.3
You can load modules for a product belonging to oneAPI 2025.
module avail now lists oneAPI 2025 modules
Loading toolchain/oneapi2025.3
Loading requirement: oneapi/2025.3 2025.3/tbb/latest 2025.3/compiler-rt/latest
2025.3/umf/latest 2025.3/compiler/latest 2025.3/mpi/latest 2025.3/mkl/latest
2025.3/vtune/latest 2025.3/advisor/latest
$ module list
Currently Loaded Modulefiles:
1) oneapi/2025.3 6) 2025.3/mpi/latest
2) 2025.3/tbb/latest 7) 2025.3/mkl/latest
3) 2025.3/compiler-rt/latest 8) 2025.3/vtune/latest
4) 2025.3/umf/latest 9) 2025.3/advisor/latest
5) 2025.3/compiler/latest 10) toolchain/oneapi2025.3
GPU- ARM
Travailler avec l’architecture Grace Hopper nécessite de respecter certaines règles de visibilité :
- Les modules ARM-GPU ne peuvent être chargés que sur les nœuds GPU (cela ne peut pas être fait depuis le nœud de login).
- Pour compiler ou exécuter votre code, vous avez deux options : Se connecter directement à un nœud GPU ou Utiliser un script SLURM lancé depuis le nœud de login en spécifiant une partition GPU.
⚠️ Ne compilez pas votre code GPU sur le nœud de login, car il est en architecture x86.
$ module avail
-------/softs/arm/modulefiles/compilers_and_libraries -------
openmpi/gcc_cpu/ openmpi/gcc_gpu/ binutils/2.46 gcc/14.1
openmpi/nvidia_cpu/ openmpi/nvidia_gpu/ nvidia
------- /softs/arm/modulefiles/scientific_applications -------
amber fftw miniforge/26.1.0 vasp/ croco/ gromacs/
------- /softs/arm/modulefiles/tools -------
cmake/3.25.1 linaro-forge/25.1.2 proxychains
Les bibliothèques
NVHPC
Le module NVHPC peut être utilisé pour la plupart des applications s’exécutant sur GPU.
Il existe plusieurs versions de NVHPC accessibles via
module load nvidia
Les modules mises à jour en continu avec de nouvelles versions.
NVHPC inclut à la fois OpenMPI et HPC-X. Il existe de nombreux sous-modules pour chaque version.
Voici une description des différences entre ces modules, indépendamment de la version :
nvhpc (Base) :
Compilateurs NVIDIA (nvc, nvc++, nvfortran), CUDA Toolkit,
bibliothèques mathématiques GPU (cuBLAS, cuFFT, etc.) et OpenMPI.nvhpc-nompi :
Identique à la version de base NVHPC mais sans implémentation MPI.
À utiliser si vous fournissez votre propre module MPI.nvhpc-hpcx :
NVHPC avec HPC-X MPI de NVIDIA (support UCX, HCOLL, NCCL),
avec intégration CUDA par défaut.nvhpc-hpcx-cudaXX :
Identique à nvhpc-hpcx mais compilé avec une version spécifique de CUDA.nvhpc-byo-compiler (Bring Your Own Compiler) :
Fournit les bibliothèques NVIDIA (NCCL, NVSHMEM, bibliothèques mathématiques)
sans les compilateurs NVIDIA ni MPI. Conçu pour une utilisation avec GCC/Clang.nvhpc-hpcx-2.20-cudaXX :
Version figée de HPC-X 2.20 + CUDA pour des environnements reproductibles
et des workflows scientifiques stables.
Pour les applications nécessitant BLAS et LAPACK, vous pouvez désormais utiliser les bibliothèques NVIDIA Performance Libraries (NVPL) à la place d’OpenBLAS.
Ces bibliothèques sont configurées automatiquement via le module. Vous pouvez afficher les informations correspondantes avec la commande module show, ce qui vous permettra notamment de voir le répertoire dans lequel se trouvent toutes les bibliothèques.
OpenMPI
En plus de NVHPC, il existe plusieurs versions d’OpenMPI disponibles.
On peut distinguer quatre types d’OpenMPI :
openmpi/gcc_cpu :
OpenMPI compilé avec GCC, fonctionnant uniquement sur CPU (notamment sur les CPU Grace Hopper),
avec un support pouvant aller jusqu’à 288 processus par nœud. Il est optimisé uniquement pour le CPU.
openmpi/gcc_gpu :
OpenMPI compilé avec GCC, prenant en charge à la fois le CPU et l’exécution sur GPU (CUDA-aware).
openmpi/nvidia_cpu :
OpenMPI compilé avec les compilateurs NVHPC, fonctionnant uniquement sur CPU.
openmpi/nvidia_gpu :
OpenMPI compilé avec les compilateurs NVHPC, prenant en charge à la fois le CPU et les GPU.
Applications
Python Environnement
Le fonctionnement est similaire sur les architectures x86 et ARM, mais les environnements Conda ne sont pas interchangeables entre ces deux architectures.
- Depuis les nœuds frontaux (login), vous utilisez un environnement Conda x86
- Pour travailler avec des environnements ARM (Grace-Hopper), il est nécessaire de se connecter au préalable à un nœud de calcul Grace-Hopper et d'utiliser proxychains pour toute commande qui a besoin d'acceder sur internet
Architecture x86
Sur les noeuds de login directement:
module load miniforge/26.1.0
Commandes utiles Conda miniforge x86
Architecture ARM
D'abord il faut reserver un noeud avec gpus:
salloc -p shared-gpu --mem 50 --time=00:10:00
Se connecter au noeud:
ssh kairosghX
Puis après chargement du module pour conda et pour proxychains.sh
module load miniforge/26.1.0
module load proxychains
Conteneurs
.