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.
Nom DNS pour se connecter : cali.unilim.fr
La connexion est possible :
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)
L'espace scratch existe toujours :
~/scratch
présent dans votre home directory
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.
L'environnement Slurm est relativement identique à CALI2-A, afin de faciliter la transition :
Cependant, des modifications ont été apportées pour permettre d'utiliser plus facilement tous les noeuds disponibles.
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).
--gres=gpu:K20:1
ou --gres=gpu:K40m:1
ou --gres=gpu:GTX1080Ti:1
Les 3 partitions principales à utiliser pour du calcul CPU sont rapide
, normal
et cluster
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
module avail gcc
module avail intel/composer
module load compiler
Deux familles de librairies MPI sont mises à disposition : OpenMPI et Intel MPI
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
.
Trois versions sont réellement disponibles :
module load mpi/openmpi-x86_64
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
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 :
module avail mpi/impi
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
Comme sur CALI2-A, il est conseillé de lancer les programmes MPI via srun
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
error while loading shared libraries: libiomp5.so
, chargez le module pour les compilateurs Intel : module load compiler
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.