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
)
- IPv4 :
-
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
- Si des parties d'algorithme ou des appels à entrées-sorties ne sont pas vectorisables, le mode natif risque de ne pas être efficace en performance. L'environnement de programmation de NEC permet une programmation hybride pour CPU et VE avec plusieurs API : programme principal sur VE et déport de noyaux sur VH (mode reverse offload, API VHcall), ou programme principal sur VH et déport de noyaux sur VE (mode accélérateur, API VEO, AVEO et VEDA). Se référer au document de formation à la prise en main de Boréale, et aux pages suivantes :
- 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) :
- https://sxauroratsubasa.sakura.ne.jp/Documentation
- https://sxauroratsubasa.sakura.ne.jp/documents/sdk/SDK_NLC/UsersGuide/main/en/index.html
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