Environnements logiciels

Logiciel de simulation en dynamique moléculaire

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é :

  1. 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).
  2. 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.

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

Commandes utiles Conda miniforge ARM

Conteneurs

.

Voir aussi

Se connecter

Lancer et suivre un calcul

Les espaces de stockage et jeux de données