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.
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.
Si vous découvrez eXplor-v2, suivez les pages dans cet ordre :
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 :
- Présentation du centre
- Architecture et ressources de calcul
- Caractéristiques matérielles
- Partitions SLURM
Comprendre les notions essentielles
Avant de lancer un calcul, il est utile de distinguer les éléments suivants :
| Notion | Description |
|---|---|
| Nœud de connexion | Machine utilisée pour se connecter, préparer les fichiers, compiler et soumettre les jobs. |
| Nœud de calcul | Machine sur laquelle SLURM exécute effectivement un job. |
| Job | Travail soumis à SLURM, par exemple un script de simulation. |
| Allocation | Ressources réservées pour un job : temps, CPU, mémoire et éventuellement GPU. |
| Partition | Groupe de ressources présentant des caractéristiques ou une politique particulière. |
| Module | Environnement logiciel permettant de charger une application ou une bibliothèque. |
| Scratch | Espace temporaire destiné aux fichiers intermédiaires et aux calculs intensifs. |
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 :
- un identifiant de l'Université de Lorraine valide ;
- 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 :
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.
| Espace | Usage recommandé | Quota ou capacité | Sauvegarde et conservation |
|---|---|---|---|
$HOME | Configuration, scripts et petits fichiers | 30 Go par utilisateur | Sauvegarde activée |
| Espace projet | Données partagées et résultats importants | Quota en To, extensible jusqu'à 10 To sur demande justifiée | Conservation selon la politique du projet |
$SCRATCH | Fichiers temporaires et calculs intensifs | Pas de quota individuel, mais capacité globale limitée | Rétention de 3 mois et nettoyage automatique |
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
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
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 :
- Principes de SLURM
- Jobs batch
- Jobs interactifs
- Suivre un job
- Utiliser les CPU, la mémoire et les GPU
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.
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 :