Aller au contenu

Guide d'utilisation du calculateur Myria

Si vous débutez dans l'environnement HPC, nous vous recommandons de lire la version détaillée au format PDF. Sinon, merci de lire au moins les deux premiers paragraphes de la documentation synthétique avant de contacter le support.

Connexion, environnement et espaces de travail

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

Syntaxe en ligne de commande : ssh monlogin@myria.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.

Par défaut un quota disque utilisateur est positionné à 50 Go dans /home ; la commande mmlsquota gpfs1: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>) 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.

Transferts de données

Pour le transfert de quantités significatives de données entre Myria et l'extérieur, le serveur myria-transfert.criann.fr doit être privilégié car il est connecté au réseau SYVIK par une interface 40 Gbit/s.

Cette machine donne accès au même répertoire /home que les frontales. Les identifiants de connexion (ssh, scp, sftp) sur myria-transfert.criann.fr sont les mêmes que sur myria.criann.fr.

Les transferts entre Myria et les ressources de l'IDRIS ne sont autorisés que par myria-transfert.criann.fr.

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 4 frontales derrière le nom myria.criann.fr
    • IPv4 : 195.221.27.66 (myria-front1.criann.fr) à 195.221.27.69 (myria-front4.criann.fr)
    • IPv6 : 2001:660:7401:273::66 (myria-front1.criann.fr) à 2001:660:7401:273::69 (myria-front4.criann.fr)
  • Connexions SSH (port 22) vers la frontale de transfert
    • IPv4 : 195.221.27.70 (myria-transfert.criann.fr)
    • IPv6 : 2001:660:7401:273::70 (myria-transfert.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@criann.fr

Logiciels disponibles

La plupart des modèles de script de soumission pour les logiciels suivants sont disponibles dans le répertoire /soft/slurm/criann_modeles_scripts.

Dans le cas contraire, contacter support@criann.fr (de même que pour demander un nouveau logiciel).

Les environnements d'applications et de librairies sont accessibles par des modules (voir les commandes module avail, module help et la documentation générale sur les modules).

Logiciels commerciaux (licence à prendre par l'utilisateur)

  • CFD/Mécanique : ANSYS Fluent, StarCCM+, FINE/Marine, Hyperworks

Logiciels libres

  • Mécanique des fluides :
    • FDS 5.5.0 (incendies)
    • Telemac v7p1r1, v8p1r1, v8p2r0 et v8p3r1
    • Code_Saturne 5.0.7 et 6.1.1
    • OpenFOAM 2.3.0, 2.4.0, 3.0.1, 3.0.x, 4.x-version-4.0, 4.x-version-4.1, 5.x-version-5.0, 5.x-20171030, 6-version-6, 6-20190304, 7-version-7, 8-version-8, 10-version-10, 1606+, 1612+, 1706, 1712, 1806, 1812, 1906, 1912, 2006, 2012, 2106, 2112, 2206 et 2212
    • Foam-extend 3.2 et 4.0
    • Delft3D4 6.03.00.141173
  • Mécanique des structures :
    • Castem 2016, 2017, 2019 et 2021
    • Code_Aster 11.6.0 séquentiel, 13.4.0 séquentiel, 14.2.0_testing ("version développement stabilisée") séquentiel et parallèle (MPI), 14.6.0 séquentiel
    • Salome-Meca 2017.0.2
    • LMGC90/user_2019_rc1
  • Chimie :
    • GAMESS 2013 et 2016
    • Dalton 2018
    • Psi4
    • Cfour v1
    • Open Babel 3.0.0
  • Dynamique moléculaire :
    • GROMACS 5.1.4, 2019.2, 2020.4, 2021.1 et 2022.1 (patch Plumed ou non)
    • NAMD 2.9 (patch Plumed), 2.12, 2.13 (patch Plumed ou non) et 2.14
    • DL_POLY_CLASSIC 1.9
    • LAMMPS 7Aug19 et 7Jan2022
    • OpenMolcas 19.11
    • Quantum Espresso 6.5
  • Climat : WRF 3.7.1, 3.9, 3.9.1 et 4.3
  • Océan : Croco v1.1
  • Géodynamique :
    • SPECFEM2D 2018
    • SPECFEM3D 2021
  • Mathématiques :
    • Octave 3.8.2 et 4.2.1
    • R 3.3.2, 3.5.1, 3.5.2, 4.0.2, 4.0.3, 4.0.5, 4.1.1 et 4.1.2
    • Scilab 5.5.2 et 6.0.1
  • IA – Deep Learning : une page est consacrée à la logithèque installée

Logiciels sous licence académique

  • Chimie quantique :
    • GAUSSIAN 03
    • Shrödinger JAGUAR 8.0 et 9.4
  • Dynamique moléculaire : Shrödinger Desmond 2016.3

Logiciels pour la visualisation ou les pré-/post-traitements

  • Gmsh 2.16.0 et 4.5.1
  • Neper 3.0.1
  • Triangle 1.6
  • ParaView 4.0.1, 5.2.0, 5.4.1, 5.6.0, 5.7.0 et 5.9.0
  • Salome 7.8.0 et 8.5.0
  • Visit 2.12.1 et 2.12.3
  • Blender 2.76b et 2.79b
  • ffmpeg 4.1
  • Helix-OS
  • XCrysDen 1.6.2
  • VMD 1.9.3

Compilation

Les environnements du compilateur et de la librairie MPI d'Intel, en version 2017, sont activés par défaut (taper module list).

Les codes MPI se compilent au moyen des commandes mpiifort (FORTRAN), mpiicc (C, 2 "i" dans le nom de cette commande), mpiicpc (C++).

L'option d'optimisation pour l'architecture des processeurs généralistes (Broadwell) est -xCORE-AVX2 (pour une compilation sur une frontale, ou en batch dans une partition autre que knl, l'option -xHost est équivalente).

L'option d'optimisation pour l'architecture des processeurs manycores Xeon Phi KNL est -xMIC-AVX512.

La génération d'un exécutable optimisé pour les deux architectures Broadwell et KNL est possible, avec l'option -axCORE-AVX2,MIC-AVX512.

Exemples de jeux d'options d'optimisation pour Broadwell, par ordre croissant d'agressivité

  • -O2 -xCORE-AVX2
  • -O3 -xCORE-AVX2 -fp-model precise
  • -O3 -xCORE-AVX2

Exemple de jeu d'options d'optimisation pour KNL

  • -O3 -xMIC-AVX512

Exemple de jeu d'options de débogage

  • -O2 -g -traceback -check all

Des exemples de fichiers Makefile sont fournis dans /soft/makefiles.

L'environnement de modules facilite la compilation d'applications liées aux librairies disponibles.

Environnement de soumission (Slurm)

Le répertoire /soft/slurm/criann_modeles_scripts contient les scripts de soumission génériques (code séquentiel, OpenMP, MPI, hybride, KNL, GPU) ou relatifs à une application spécifique.

Mémoire

Il est conseillé d'employer la directive #SBATCH --mem de Slurm, spécifiant la demande mémoire par nœud de calcul (plutôt que la mémoire par cœur réservé, --mem-per-cpu).

Si un calcul parallèle a besoin d'une quantité de mémoire par tâche MPI supérieure à 4300MB, les nœuds de calcul standard de Myria doivent être dépeuplés par l'ajout de la directive #SBATCH --ntasks-per-node dans le script de soumission.

Par exemple, les paramètres suivants demandent un total de 140 tâches MPI avec, par nœud de calcul (serveur) standard, 14 tâches MPI et 120000 MB de mémoire (ces serveurs ayant 28 cœurs chacun, la moitié des unités de calcul seront exploitées mais toute la RAM sera disponible) :

# Partition (submission class)
#SBATCH --partition 2tcourt

# MPI tasks number
#SBATCH --ntasks 140

# MPI tasks per compute node
#SBATCH --ntasks-per-node 14

# Maximum memory per compute node (MB)
#SBATCH --mem 120000

Commandes

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

Action Commande
Charge du calculateur slurmtop -f -
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)

Les partitions utilisent les 368 nœuds bi-sockets Broadwell (10304 cœurs), les 10 nœuds Xeon Phi KNL (640 cœurs) et le nœud SMP (256 cœurs).

Le nombre de nœuds de calcul, auxquels les travaux des différentes partitions accèdent, sont donnés ci-dessous à titre indicatif. Les administrateurs ajustent parfois légèrement la taille de ces «fenêtres de tir» en fonction de la charge observée. En revanche, les limitations par calcul restent en général constantes. Dans tous les cas, ces limites ne sont pas modifiées sans qu'une annonce soit faite à la liste de diffusion des utilisateurs.

Remarque : le caractère reproductible des performances d'une application sur le calculateur peut être renforcé par l'application dans le script de soumission de la directive #SBATCH --exclusive qui impose l'exécution du travail soumis sur un ensemble de nœuds non partagés. Cette directive est conseillée pour les travaux de production MPI multi-nœuds, recommandée dans le cas de tests de performance.

Pour des calculs de production ou de développement scientifique, dans le cas particulier d'applications séquentielles il est préférable de ne pas appliquer cette directive (pour ne pas monopoliser un nœud 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 2tcourt script_soumission.sl)

Travaux de debug

Cette partition regroupe tous les serveurs équipés du processeur Xeon Broadwell.

Partition Durée maximale Nœuds disponibles Limites par calcul Conseils
debug 0 h 30 363 nœuds 5 nœuds (140 cœurs et 585 Go / 28 cœurs et 1 To de mémoire) L'un des 363 serveurs associés à cette partition est équipé d'1 To de mémoire

Travaux sur architecture standard (Broadwell)

Les partitions sont définies en fonction des quantités de ressource demandées.

Partition Durée maximale Nœuds disponibles Limites par calcul Conseils
2tcourt 12 h 332 nœuds 75 nœuds en semaine (2100 cœurs et 9600 Go de mémoire)
150 nœuds pendant le week-end (*) (4200 cœurs et 19200 Go de mémoire)
#SBATCH --mem 120000MB pour MPI ou OpenMP nœud(s) plein(s)
tcourt 24 h 322 nœuds 75 nœuds (2100 cœurs et 9600 Go de mémoire) #SBATCH --mem 120000MB pour MPI ou OpenMP nœud(s) plein(s)
court 48 h 100 nœuds 20 nœuds (560 cœurs et 2560 Go de mémoire) #SBATCH --mem 120000MB pour MPI ou OpenMP nœud(s) plein(s)
long 100 h 50 nœuds 10 nœuds (280 cœurs et 1280 Go de mémoire) #SBATCH --mem 120000MB pour MPI ou OpenMP nœud(s) plein(s)
tlong 300 h 15 nœuds 2 nœuds (56 cœurs et 256 Go de mémoire) #SBATCH --mem 120000MB pour MPI ou OpenMP nœud(s) plein(s)
tcourt_intra 24 h 134 nœuds 1 nœud (28 cœurs et 128 Go de mémoire) #SBATCH --mem 120000MB pour MPI ou OpenMP nœud plein

(*) l'horaire du week-end commence le vendredi soir à 17h et se termine le dimanche soir à 20h. Pendant cette période, le total des cœurs utilisé par un utilisateur peut atteindre 4200 cœurs, autorisant ainsi un calcul dans la partition 2tcourt jusqu'à 4200 cœurs.

Travaux sur architectures spécifiques

Les partitions correspondent au type de l'architecture ciblée.

Partition Durée maximale Nœuds disponibles Limites par calcul Conseils
disque 300 h 13 nœuds (Broadwell) (dont 12 à 128 Go et 1 à 1 To de mémoire) 28 cœurs et 1 To de mémoire
(#SBATCH --mem 1016GB)
Scratch disque local (non partagé en réseau) : $LOCAL_SCRATCH_DIR
smplarge 3 h Totalité du serveur SMP (Haswell) 256 cœurs et 3,99 To de mémoire #SBATCH --mem 4090GB (disponible)
smplong 72 h Moitié du serveur SMP (Haswell) 128 cœurs et 2 To de mémoire #SBATCH --exclusive interdite
#SBATCH --mem 2045GB (disponible)
knl 100 h 10 nœuds (KNL) 4 nœuds (256 cœurs et 384 Go de mémoire) #SBATCH --mem 89000MB pour MPI ou OpenMP nœud(s) plein(s)
gpu_k80 48 h 9 nœuds (Broadwell) (avec GPUs Kepler K80) 8 nœuds (224 cœurs et 1024 Go de mémoire)
gpu_p100 48 h 9 nœuds (Broadwell) (avec GPUs Pascal P100) 8 nœuds (224 cœurs et 1024 Go de mémoire)
gpu_v100 48 h 5 nœuds (SkyLake) (avec GPUs Volta V100) 5 nœuds (160 cœurs et 900 Go de mémoire)
gpu_all 48 h 18 nœuds (Broadwell) (avec GPUs K80 ou P100) 1 nœud (28 cœurs et 128 Go de mémoire)
gpu_court 4 h 4 nœuds (Broadwell) (avec GPUs K80) 1 nœud (28 cœurs et 128 Go de mémoire)
visu 6 h 2 nœuds (Broadwell) à 256 Go de RAM 8 cœurs et 128 Go de mémoire
visu2 6 h 2 nœuds (Broadwell) à 128 Go de RAM 8 cœurs et 128 Go de mémoire

La partition disque doit être spécifiée pour des applications de chimie intensives en débit d'écriture. Voir les modèles de fichiers de soumission dans /soft/slurm/criann_modeles_scripts :

  • job_Gamess2013.sl
  • job_Gamess2016.sl
  • job_Jaguar-8.0.sl
  • job_Jaguar-9.4.sl
  • job_Gaussian03.sl

GPGPU

Une description des modalités de soumission de travaux sur GPU est disponible.

Un paragraphe concerne les utilisateurs devant compiler ou exécuter des applications multi-GPU (pour le cas CUDA aware MPI) sur l'architecture V100-SXM2 de Myria.

KNL

Les serveurs dotés d'un processeur Xeon Phi KNL ont plusieurs configurations (modes de "clustering" et de mémoire rapide embarquée).

La page de documentation KNL décrit ces configurations et les directives de Slurm permettant de les spécifier pour les travaux.

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.

Compléments

La documentation détaillée au format PDF (paragraphes "Bonnes pratiques de soumission" et "Exécution des travaux : aspects avancés") fournit des informations utiles :

  • Rapport de consommation de ressources (mémoire notamment) par calcul
  • Travaux multi-étapes (pré-traitement, solveur et post-traitement par exemple) et dépendances entre travaux
  • Prise en compte de la topologie du réseau pour la performance des communications MPI
  • Placement optimal des processus parallèles d'un travail pour la performance (dans le cas d'utilisation de nœuds de calcul en mode dépeuplé)

Suivi de la consommation horaire

À partir des frontales, la commande maconso affiche votre consommation ainsi que celle du projet. Si vous êtes responsable de projet ou responsable adjoint maconso -u indique le détail pour tous les comptes.

Ces informations sont également accessibles au format JSON dans le fichier ~/.acct_myria.json.

Les consommations sont actualisées toutes les nuits.


Dernière mise à jour: 6 avril 2023 14:51:07