Skip to main content

Bien démarrer sur eXplor-v2

eXplor-v2 est le nouveau centre de calcul scientifique de l'Universite de Lorraine. Il entrera prochainement en production et cette documentation accompagne l'ensemble des utilisateurs dans la découverte de la plateforme.

Que vous ayez déjà utilisé un cluster HPC ou qu'il s'agisse de votre première expérience avec le calcul intensif, vous trouverez ici les informations nécessaires pour :

  • obtenir et utiliser votre compte ;
  • vous connecter à eXplor-v2 ;
  • comprendre l'organisation du centre de calcul ;
  • choisir les ressources adaptées à votre problème ;
  • utiliser les espaces de stockage ;
  • charger les logiciels disponibles ;
  • lancer un premier calcul ;
  • suivre vos travaux et récupérer vos résultats ;
  • demander de l'aide au support.
Une documentation commune pour tous

eXplor-v2 étant une nouvelle infrastructure, tous les utilisateurs sont invités à suivre ce parcours de prise en main avant de lancer des calculs importants. Les procédures, les partitions et les politiques peuvent différer des environnements de calcul utilisés précédemment.

Découvrir eXplor-v2​

eXplor-v2 est une infrastructure de calcul scientifique destinée à l'exécution de simulations numériques, de codes scientifiques, de traitements de données et de travaux nécessitant davantage de ressources qu'un poste de travail classique.

Le centre fournit notamment :

  • des nœuds de calcul CPU ;
  • des nœuds équipés de GPU, selon les besoins des applications ;
  • des ressources de visualisation ;
  • des services interactifs tels qu'Open OnDemand, TurboVNC et des environnements de notebooks ;
  • un ensemble de logiciels scientifiques accessibles par modules.

Les calculs sont exécutés par l'intermédiaire de SLURM, le gestionnaire de ressources et d'ordonnancement du cluster.

Pour plus de détails :

Comprendre les notions essentielles​

Avant de lancer un calcul, il est utile de distinguer les éléments suivants :

NotionDescription
Nœud de connexionMachine utilisée pour se connecter, préparer les fichiers, compiler et soumettre les jobs.
Nœud de calculMachine sur laquelle SLURM exécute effectivement un job.
JobTravail soumis à SLURM, par exemple un script de simulation.
AllocationRessources réservées pour un job : temps, CPU, mémoire et éventuellement GPU.
PartitionGroupe de ressources présentant des caractéristiques ou une politique particulière.
ModuleEnvironnement logiciel permettant de charger une application ou une bibliothèque.
ScratchEspace temporaire destiné aux fichiers intermédiaires et aux calculs intensifs.
Ne lancez pas de calcul lourd sur un nœud de connexion

Les nœuds de connexion sont partagés par les utilisateurs. Ils servent à préparer les calculs, éditer les scripts, compiler des programmes légers, transférer des fichiers et soumettre des jobs. Les calculs importants doivent être exécutés sur les nœuds de calcul via SLURM.

Obtenir un compte​

L'accès à eXplor-v2 nécessite :

  1. un identifiant de l'Université de Lorraine valide ;
  2. un rattachement à un projet de calcul.

Les comptes utilisent les identifiants UL. Les droits d'accès et les groupes disponibles dépendent du projet auquel vous êtes rattaché.

Pour demander un compte ou un rattachement à un projet, consultez :

Utilisateurs externes

Les utilisateurs qui ne disposent pas d'un identifiant UL peuvent nécessiter une procédure spécifique. Contactez le responsable d'un projet existante pour demander le rattachement.

Première connexion SSH​

Pour vous connecter à votre environnement eXplor depuis un terminal Unix, utilisez SSH :

ssh <identifiant-UL>@explor.univ-lorraine.fr

Après connexion, vérifiez votre environnement :

hostname
cat /etc/os-release
id
groups

Vous pouvez vérifier que Rocky Linux 9 est utilisé avec :

cat /etc/rocky-release

Vérifiez également la disponibilité du gestionnaire de modules :

module --version
module avail

Pour les connexions avancées :

Les espaces de stockage​

Les espaces de stockage d'eXplor-v2 ont des usages différents. Ils sont tous limités d'une manière ou d'une autre et ne doivent pas être utilisés indifféremment.

EspaceUsage recommandéQuota ou capacitéSauvegarde et conservation
$HOMEConfiguration, scripts et petits fichiers30 Go par utilisateurSauvegarde activée
Espace projetDonnées partagées et résultats importantsQuota en To, extensible jusqu'à 10 To sur demande justifiéeConservation selon la politique du projet
$SCRATCHFichiers temporaires et calculs intensifsPas de quota individuel, mais capacité globale limitéeRétention de 3 mois et nettoyage automatique
Les espaces sont limités

L'absence de quota individuel sur $SCRATCH ne signifie pas que cet espace est illimité. Il est partagé entre les utilisateurs et peut faire l'objet d'un nettoyage automatique pour libérer de la place.

Pour plus d'informations :

Utiliser les modules logiciels​

Les logiciels et bibliothèques sont disponibles par l'intermédiaire du système de modules.

Commandes principales :

module avail
module spider <logiciel>
module load <logiciel>/<version>
module list
module show <logiciel>/<version>
module unload <logiciel>/<version>
module purge

Exemple :

module purge
module load gcc/13.4.0
module load openmpi/5.0.10-gcc13
module load quantum-espresso/7.5-mpi-gcc13
module list

Pour rechercher Quantum Espresso :

module spider quantum-espresso

Pour inspecter son environnement :

module show quantum-espresso/7.5-mpi-gcc13
Environnement reproductible

Notez toujours les modules utilisés dans vos scripts SLURM. Évitez de dépendre implicitement des modules hérités de votre session interactive.

Exemple de début de script :

module purge
module load quantum-espresso/7.5-mpi-gcc13

Pour aller plus loin :

Faire un premier test interactif​

Une allocation interactive permet de tester une commande sur un nœud de calcul avant de soumettre un job batch.

La commande suivante est un exemple générique :

salloc -A id-projet \
--partition=<partition> \
--ntasks=1 \
--cpus-per-task=4 \
--mem=8G \
--time=00:30:00 \
srun --pty bash

Une fois sur le nœud de calcul :

hostname
module purge
module load quantum-espresso/7.5-mpi-gcc13

Vous pouvez vérifier le programme :

pw.x -?

Pour un test MPI :

srun \
--partition=<partition> \
--ntasks=4 \
--cpus-per-task=1 \
--time=00:10:00 \
FreeFem++-mpi test.edp
note

Remplacez <partition> par le nom officiel d'une partition eXplor-v2. Vérifiez les valeurs disponibles avec :

sinfo
scontrol show partition

Pour les jobs interactifs :

Soumettre un premier job batch​

Créez un fichier first-job.slurm :

#!/bin/bash
#SBATCH --job-name=first-job
#SBATCH --output=slurm-%x.%N.%j.out
#SBATCH --error=slurm-%x.%N.%j.err
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=8G
#SBATCH --time=00:10:00
#SBATCH --partition=<partition>

# Afficher les variables d'environnement SLURM
env | grep -i slurm

# Changer de répertoire vers le répertoire de soumission
cd "$SLURM_SUBMIT_DIR"

# Création d'un répertoire temporaire pour le travail
WORKDIR="$SCRATCHDIR/job.$SLURM_JOB_ID.$USER"
mkdir -p "$WORKDIR"

module purge
module load quantum-espresso/7.5-mpi-gcc13

export OMP_NUM_THREADS=1
export MKL_NUM_HTREADS=1

unset I_MPI_PMI_LIBRARY

ulimit -s unlimited

# Copie des fichiers de soumission vers le répertoire de travail
cp "$SLURM_SUBMIT_DIR"/* "$WORKDIR"

# Changer de répertoire vers le répertoire de travail
cd "$WORKDIR"

mpirun -n $SLURM_NTASKS -ppn $SLURM_NTASKS_PER_NODE pp.x < Input.in > Output.out

# Création d'un répertoire pour les fichiers de sortie
OUTDIR="$SLURM_SUBMIT_DIR/outdir.$SLURM_JOB_ID"
mkdir -p "$OUTDIR"

# Déplacement de tous les fichiers de travail vers le répertoire de sortie
cp "$WORKDIR"/* "$OUTDIR"

# Optionnel : décommenter la ligne suivante pour supprimer le répertoire de travail
rm -rf "$WORKDIR"

Soumettez le job :

sbatch first-job.slurm

Suivez son état :

squeue -u "$USER"

Une fois le job terminé :

sacct -j <jobid> --format=JobID,State,Elapsed,AllocTRES,MaxRSS

Consultez les fichiers de sortie :

cat first-job-<jobid>.out
cat first-job-<jobid>.err

Annulez un job si nécessaire :

scancel <jobid>

Pour aller plus loin :

Découvrir les services interactifs​

Selon la configuration d'eXplor-v2, les services interactifs peuvent inclure :

  • Open OnDemand ;
  • TurboVNC ;
  • JupyterLab ;
  • VS Code ;
  • applications de visualisation.

Ces services utilisent eux aussi des ressources gérées par SLURM. Ils ne remplacent pas la réservation de ressources.

Transférer des fichiers​

Depuis votre poste local :

scp fichier.txt <identifiant>@<hôte-de-connexion>:$HOME/

Pour transférer un répertoire :

rsync -avh --progress ./mon-projet/ <identifiant>@<hôte-de-connexion>:$HOME/mon-projet/

Pour récupérer des résultats :

rsync -avh --progress <identifiant>@<hôte-de-connexion>:/chemin/vers/resultats/ ./resultats/

Pour les gros volumes, préférez rsync, qui peut reprendre un transfert interrompu.

Bonnes pratiques dès la mise en production​

  • Ne lancez pas de calcul lourd sur les nœuds de connexion.
  • Utilisez SLURM pour tous les calculs nécessitant des ressources significatives.
  • Demandez uniquement le nombre de CPU, la mémoire, les GPU et le temps nécessaires.
  • Commencez par un petit test avant de soumettre un calcul long.
  • Utilisez le scratch pour les fichiers intermédiaires.
  • Sauvegardez les résultats importants dans un espace pérenne.
  • Notez les versions des logiciels et les modules chargés.
  • Conservez vos scripts SLURM avec vos résultats.
  • Vérifiez les limites des partitions avant de lancer un grand nombre de jobs.
  • Ne supposez pas que les règles d'un ancien cluster s'appliquent à eXplor-v2.
Phase de mise en production

eXplor-v2 étant un nouveau centre, certaines procédures, ressources ou politiques peuvent évoluer pendant la phase de démarrage. Consultez régulièrement la documentation et les communications du centre avant d'utiliser de nouvelles ressources.

En cas de problème​

Avant de contacter le support, collectez les informations suivantes :

hostname
id
groups
module list
sinfo
squeue -u "$USER"

Pour un job terminé :

sacct -j <jobid> --starttime today

Indiquez systématiquement :

  • votre identifiant ;
  • le nom du projet ;
  • le numéro du job ;
  • la commande utilisée ;
  • le script SLURM ;
  • le message d'erreur complet ;
  • les modules chargés ;
  • le nœud concerné, s'il est connu ;
  • la date et l'heure du problème.

Pour le support :

Pour aller plus loin​