CALI VERSION 2-B

Une évolution logicielle majeure est passée en production sur CALI le 14 septembre 2022. Le système est un équivalent RedHat 8 ( AlmaLinux 8.6).

Vous trouverez ici les éléments importants à prendre en compte. Dans la suite, nous indiquons les différences entre l'ancienne version et la nouvelle.

Connexion aux clusters

Connexion au "nouveau" cluster CALI 2-B

Nom DNS pour se connecter : cali.unilim.fr

La connexion est possible :

  • Par SSH
  • Par X2GO

Espaces de stockage

Home directory

Le home directory n'est plus le même. Vous pouvez retrouver l'ancien home directory en allant dans le sous-dossier ~/old-home (lien présent à la racine de votre nouveau home directory)

Espace scratch

L'espace scratch existe toujours :

  • Identique à celui de CALI2-A
  • Accessible comme avant via le lien ~/scratch présent dans votre home directory

Choix de l'environnement logiciel -- Les modules

La commande module permet (comme précédemment) de sélectionner un environnement logiciel, pour utiliser un logiciel avec une certaine version.

A la différence de l'ancienne version du cluster, aucun module n'est chargé par défaut. Sur CALI2-A, certains modules (compilateurs Intel, Intel MPI) étaient chargés par défaut – ce n'est plus le cas.

Slurm

L'environnement Slurm est relativement identique à CALI2-A, afin de faciliter la transition :

  • mêmes partitions
  • mêmes limites

Cependant, des modifications ont été apportées pour permettre d'utiliser plus facilement tous les noeuds disponibles.

Partition GPU

La partition gpu a été étendue à tous les noeuds avec GPU (qu'ils soient communs ou “privatifs”, càd propriété de certaines équipes de recherche).

  • elle donne maintenant accès à des cartes K20, K40m ou GTX 1080 Ti
  • le type de carte voulue peut être précisé dans le job – modifier la réservation pour ajouter le type : --gres=gpu:K20:1 ou --gres=gpu:K40m:1 ou --gres=gpu:GTX1080Ti:1
  • les cartes K40m et GTX1080Ti sont mises à disposition par des laboratoires qui les ont financés – en contre-partie, s'ils en ont besoin, vos jobs seront pré-emptés en les arrêtant (kill) et en les remettant dans la queue

Partitions CPU

Les 3 partitions principales à utiliser pour du calcul CPU sont rapide, normal et cluster

  • Ces partitions ont été étendues à des noeuds plus récents
  • Tous ces noeuds ont un réseau Infiniband
  • Comme pour les gpu, vous pouvez préciser le type de processeur, principalement Xeon-E5-2630-v4 pour les noeuds “récents” ou Xeon-E5-2650-v2 pour les noeuds d'origine – La sélection se fait avec l'option --constraint=TYPE

Compilateurs

Suite GNU

  • Vous disposez nativement de la suite GNU (gcc, g++, gfortran), en version 8.5, de la distribution AlmaLinux
  • Si vous avez besoin d'autres versions, les modules permettent de choisir une autre version – récupérées de CALI2-A – voir les versions disponibles avec module avail gcc

Suite INTEL

  • Les anciennes versions des compilateurs Intel sont toujours disponibles – voir les versions disponibles avec module avail intel/composer
  • Une nouvelle version, la suite OneAPI, a été installée – pour la charger, la commande est simplement module load compiler

MPI

Deux familles de librairies MPI sont mises à disposition : OpenMPI et Intel MPI

Avertissement

Une partie des noeuds du cluster est relié par un réseau haute performance Infiniband, de technologie QLogic TrueScale ou Intel Infinipath. Cette technologie a été abandonnée par Intel, et mal supportée à l'heure actuelle.

La meilleure façon de faire fonctionner ce réseau consiste à utiliser une API appelée psm. Hors elle ne fonctionne pas avec la nouvelle version. Il faut alors se “rabattre” soit sur l'API verbs, soit sur le mode tcp.

OpenMPI

Trois versions sont réellement disponibles :

  • celle livrée par AlmaLinux 8 – à charger avec module load mpi/openmpi-x86_64
  • deux versions (3.1 et 4.1) recompilées – à charger avec module load mpi/openmpi/3.1.6 ou mpi/openmpi/4.1.2

La configuration qui semble optimale avec OpenMPI est d'utiliser la couche PML ucx – par exemple en positionnant la variable suivante dans vos jobs slurm :

export OMPI_MCA_pml=ucx 

Si vous avez besoin de déboguer la couche OpenMPI, vous pouvez ajouter ces variables :

export OMPI_MCA_pml_base_verbose=10
export OMPI_MCA_mtl_base_verbose=10
export OMPI_MCA_btl_base_verbose=10

Intel MPI

Avertissement La librairie Intel MPI semble moins efficace qu'OpenMPI en l'absence de support de psm. A tester pour votre code.

Plusieurs versions sont disponibles :

  • les ancienns versions de CALI2-A sont toujours disponibles – voir les versions avec module avail mpi/impi
  • une version issue de OneAPI est aussi disponible : module load mpi/2021.3.0

Pour utiliser verbs, vous devez positionner la variable suivante (par exemple dans vos jobs slurm) :

export FI_PROVIDER=verbs
# Et si vous voulez avoir des informations de "debogage":
export FI_LOG_LEVEL=99
export I_MPI_DEBUG=4 

Intégration avec SLURM

Comme sur CALI2-A, il est conseillé de lancer les programmes MPI via srun

Logiciels disponibles

Les anciens logiciels de CALI2-A ont été recopiés et sont donc toujours accessibles via les modules. Cependant, la plupart risquent de ne pas fonctionner sur CALI2-B car l'environnement système n'est plus le même :!:

  • Si vous obtenez une erreur error while loading shared libraries: libiomp5.so, chargez le module pour les compilateurs Intel : module load compiler
  • Si vous obtenez une autre erreur error while loading shared libraries: …so, chargez le module suivant : module load compat/centos-6

Si ces mesures ne sont pas suffisantes, signalez-nous le logiciel nécessaire pour vos calculs et l'erreur précise obtenue.

Note Nous vous rappelons aussi que sous Linux, vous pouvez installer tous les logiciels souhaités dans vos espaces disques, en totale autonomie – suivant votre degré de familiarité avec ce système.