Aller au contenu

Guide d'utilisation du calculateur Boréale

Connexion, environnement et espaces de travail

La connexion s'effectue en SSH vers les frontales regroupées sous le nom boreale.criann.fr.

Syntaxe en ligne de commande : ssh -l monlogin boreale.criann.fr (en remplaçant monlogin par votre identifiant). Les environnements Linux et Mac intègrent nativement le protocole SSH via un terminal. Si vous êtes sous environnement Windows, nous vous recommandons d'utiliser le logiciel MobaXTerm qui vous apportera un environnement de travail complet basé du protocole ssh (export d'écran, transfert de fichiers).

Lors de votre première connexion, le changement de mot de passe vous est imposé. Lisez soigneusement ce qui vous est demandé : (current) Password correspond au mot de passe actuel et non au nouveau mot de passe souhaité...

Les personnalisations (variables d'environnement, alias) se font avec un fichier ~/.bash_profile (et non ~/.bashrc) à créer.

L'utilisateur a un espace de travail personnel dans /home/project_name/username.

Par défaut un quota disque utilisateur est positionné à 50 Go dans /home ; la commande mmlsquota gpfs2:home fournit le quota et la place que l'utilisateur occupe dans la partition /home.

Nous vous encourageons à calculer dans les dossiers de scratch temporaires (/dlocal/run/<jobid> disponible via la variable d'environnement LOCAL_WORK_DIR) créés par l'outil de batch Slurm pour chaque calcul. Un quota de 10 millions de fichiers est appliqué sur l'arborescence /dlocal ; la commande mmlsquota gpfs1:dlocal fournit le quota et le nombre de fichiers vous appartenant dans l'arborescence /dlocal/run.

Si vous estimez que ces limites (quotas) sont trop contraignantes pour vous, n'hésitez pas à ouvrir un ticket auprès du support. Celles-ci peuvent être augmentées sur demande justifiée.

Pour plus d'informations sur cet espace de travail et sur les commandes recommandées pour gérer vos fichiers, consulter cette page.

Firewall

Si votre structure a un firewall limitant les flux en sortie de votre site, voici les ports à ouvrir :

  • Connexions SSH (port 22) vers les 2 frontales derrière le nom boreale.criann.fr

    • IPv4 : 195.221.27.114 (boreale-front1.criann.fr) à 195.221.27.115 (boreale-front2.criann.fr)
  • Concernant les sessions de visualisation à distance, pour connaître les IP et les ports à ouvrir, merci de contacter le support par mail à support-boreale@criann.fr

Architecture

Une description matérielle du cluster Boréale est disponible.

Cette machine cible des applications vectorisées et idéalement de profil lié à la mémoire, puisque la bande passante mémoire d'une carte NEC SX-Aurora TSUBASA 20B (ou VE, Vector Engine) a une valeur élevée de 1,53 TB/s, alors que sa puissance crête en double précision a une valeur de 2,45 TFlop/s, modérée relativement à d'autres types d'accélérateurs. Toutefois à titre de comparaison, la puissance CPU d'un nœud de calcul de Boréale (ou VH, Vector Host), hôte de 8 VE 20B, est de 2,97 TFlop/s.

Un VE possédant 8 cœurs, une parallélisation d'application par OpenMP et/ou MPI est nécessaire pour un usage complet de ce processeur. Chacun de ces cœurs possède 64 vecteurs longs (registres), chacun d'une taille de 256 éléments de double précision (16384 bits). La vectorisation des boucles internes de code est alors cruciale.

Trois modes d'utilisation de cette machine sont possibles :

  • Usage des VE en mode natif ou offloading automatique
    • La programmation ne s'appuie que sur les langages standard (FORTRAN, C, C++), OpenMPI et/ou MPI. L'application est compilée par le compilateur de NEC et le système déporte automatiquement et totalement l'exécution sur VE
  • Usage des VE et VH en mode hybride
  • Usage des VH
    • L'utilité d'exécution de versions CPU de code est naturellement pour la comparaison de résultats numériques et de performance, avec des versions VE en développement

Logiciels disponibles

Les environnements d'applications et de librairies sont accessibles par le biais de modules (cf. commandes module help, module avail).

Pour les librairies, le chargement d'un module active les variables d'environnement pouvant être incluses dans un Makefile : se référer à la page de documentation sur les modules.

Les bibliothèques ou logiciels compilés pour l'architecture vectorielle ont leur module dans le répertoire /soft/Modules/Modules-boreale/vecto de l'arborescence de modules (obtenue par module avail). Le reste permet l'usage des CPU des machines hôtes, pour les modes de calcul hybride VH-VE ou purement CPU.

Simulation atomistique

  • Quantum Espresso 6.4 pour VE, avec et sans ELPA (Eigenvalue soLvers for Petaflop Application)

Bibliothèques de format de données

  • HDF5 1.10.5, séquentielle et parallèle, pour VE et VH (version CPU compilée par Gnu et NEC MPI)
  • NETCDF C 4.7.4 et NETCDF FORTRAN 4.5.3, séquentielle et parallèle, pour VE et VH (version CPU compilée par Gnu et NEC MPI)

NEC Numeric Library Collection (NLC)

Le SDK de NEC pour l'architecture VE comprend la suite NLC, qui inclut notamment des versions optimisées de BLAS, LAPACK, SCALAPACK et FFTW (séquentielle, OpenMP ou MPI) :

Compilation

Pour l'architecture CPU (x86), les environnements du compilateur et de la librairie MPI d'Intel, OneAPI, et le compilateur de Gnu en version de 12.2.0 sont disponibles (taper module avail).

Pour l'architecture vectorielle NEC, un module compilers/nec/3.5.1 est disponible pour le compilateur (commandes nfort / ncc / nc++ pour FORTRAN / C / C++).

Pour MPI, les trois modules suivants permettent la compilation (wrappers mpinfort / mpincc / mpinc++ pour FORTRAN / C / C++) et l'exécution (mpirun dans les scripts de soumission par Slurm), respectivement pour le mode hybride (VE-VH) ou VH avec le compilateur de Gnu, hybride ou VH avec le compilateur d'Intel et natif (VE) :

[login@boreale-front1 ~]$ module avail mpi/nec
----------------------------------------------------- /soft/Modules/Modules-boreale/vecto -----------------------------------------------------
mpi/nec/hybrid-gnu/3.0.0  mpi/nec/hybrid-intel/3.0.0  mpi/nec/native/3.0.0  

Pour les parties de code MPI compilées pour VH, l'option de compilation -vh est nécessaire avec NEC MPI.

Echantillon d'options de compilation utiles avec le compilateur de NEC

  • Optimisation de troisième niveau, interprétation de directives OpenMP et diagnostics du compilateur (rapport de vectorisation en fichiers de suffixe .L) :
    • -O3 -fopenmp -report-all -fdiag-vector=3
  • Ajout du profilage à l'exécution (ftrace) :
    • -O3 -fopenmp -report-all -fdiag-vector=3 -ftrace

Le document de la formation à la prise en main de Boréale fournit davantage d'informations sur l'usage de ces options de compilation et de profilage.

La documentation de référence sur ces sujets figure sur https://sxauroratsubasa.sakura.ne.jp/Documentation#SDK

Environnement de soumission (Slurm)

Le répertoire /soft/boreale/slurm/criann_scripts_templates contient les scripts de soumission génériques pour code séquentiel ou OpenMP, MPI, MPI+OpenMP en mode natif (job*_VE.sl), hybride (job_VE-VH.sl), hybride au moyen de l'API VEDA (job_*VEDA*) ou purement CPU (job_MPI_OpenMP_VH.sl).

Mémoire

La directive SBATCH --mem de Slurm contrôle pour un travail :

  • la mémoire résidente (RSS) par VE : la limite demandée par --mem s'applique à chaque VE du travail

  • la mémoire résidente par VH : la limite demandée par --mem s'applique au processus séquentiel, à la somme des threads ou à la somme des tâches MPI sur CPU du travail dans chacun de ses nœuds de calcul (Vector Host).

Commandes

Ce tableau fournit les commandes utiles pour la soumission des travaux.

Action Commande
Caractéristiques des partitions (classes) sinfo
Soumettre un travail sbatch script_soumission.sl
Soumettre un travail en "hold" (attente) sbatch -H script_soumission.sl
Libérer un travail en "hold" (attente) scontrol release job_id
Lister l'ensemble des travaux squeue
Lister ses propres travaux squeue -u login
Affichage des caractéristiques d'un travail scontrol show job job_id
Prévision d'horaire de passage d'un travail en file d'attente squeue --start --job job_id
Vérification de la syntaxe et prévision d'horaire de passage d'un travail sans le soumettre sbatch --test-only script_soumission.sl
Prévision d'horaire de passage de ses propres travaux squeue -u login --start
Tuer un travail scancel job_id

Variables d'environnement

Les variables utilitaires suivantes (liste non exhaustive) peuvent être exploitées dans les commandes utilisateurs (Shell) d'un script de soumission.

Nom de variable Valeur
SLURM_JOB_ID Identification du travail (exemple : 64549)
SLURM_JOB_NAME Nom du travail (spécifié par #SBATCH -J)
SLURM_SUBMIT_DIR Nom du répertoire initial (dans lequel la commande sbatch a été lancée)
SLURM_NTASKS Nombre de processus MPI du travail
LOCAL_WORK_DIR Nom du répertoire de scratch temporaire fondé sur le numéro du calcul : /dlocal/run/$SLURM_JOB_ID.
Cette arborescence est supprimée 45 jours après la fin du calcul.

Les partitions (classes de soumission)

Travaux d'exécution de calcul

La partition est spécifiée par le script de soumission avec la directive #SBATCH --partition (ou dans la ligne de commande : sbatch --partition compute script_soumission.sl).

Partition Durée maximale Nœuds disponibles Limites par calcul
compute 100 h 9 nœuds 9 nœuds (288 cœurs et 243000 Mo / nœud)

Travaux de visualisation

La commande startvisu soumet un travail de partition visu, demandant 64 Go de mémoire, 4 cœurs et 4 heures de limite de temps.

La demande en temps est extensible à une durée supérieure si besoin, par l'option --time (exemple pour 6 heures : startvisu --time 6:00:00). La limite de temps de la partition visu est de 8 heures.

Visualisation à distance

Une documentation spécifique pour les travaux de visualisation est disponible.

Gestion des signaux envoyés par Slurm

Une documentation spécifique pour attraper et traiter les signaux envoyés par Slurm est disponible.

Assistance

Utiliser l'adresse mail support-boreale@criann.fr


Dernière mise à jour: 28 novembre 2022 10:42:46