[ TAG ] : SLURM

[ TITLE    ] : SLURM - Stats & Diagnostic
[ CATEGORY ] : //
[ DATE     ] :

Pour effectuer des diagnostics et sortir des statistiques sous SLURM, on peut utiliser 3 commandes : # sdiag# sacctmgr show stats# sacctmgr show problem Commande sdiagUtilitéLa commande sdiag permet d’obtenir de nombreuses informations sur : le nombre de jobs (lancés, annulés, terminés, échoués, etc.) les appels RCP et qui les exécute les temps des traitements ExempleExemple de sortie : # sdiagServer thread count: 3Agent queue size: 0Agent count: 0DBD Agent queue size: 0Jobs submitted: 523Jo

[ TITLE    ] : SLURM - Modifier temps de calcul
[ CATEGORY ] : //
[ DATE     ] :

Parfois il arrive que des utilisateurs aient lancé des jobs sur une queue avec une QOS (de temps) trop courte et que leurs calculs ne puissent pas se finir dans le temps imparti. Pour leur accorder du temps supplémentaire, il faut modifier le TimeLimit à l’aide de la commande scontrol avec un update. Créer une limite de tempsNormalement on définie une QOS valable pour un groupe d’utilisateurs ou pour une queue/noeud mais il est possible de modifier une valeur (ici de temps) au cas par cas. Affic

[ TITLE    ] : Bascule de noeuds sous SGE vers SLURM
[ CATEGORY ] : //
[ DATE     ] :

Dans notre cas nous devons basculer 3 noeuds actuellement sous gestion SGE vers SLURM, les noeuds à basculer sont mynode05, mynode06, mynode07 et mynode08. Administration sous SGEAffichageOn affiche la liste des noeuds sous gestion SGE : # qstat -fqueuename qtype resv/used/tot. load_avg arch state-----------------------------------------------------------------------------allqueue.q@mynode01.hpc BIP 0/13/40 10.72 lx-amd64-----------------------------

[ TITLE    ] : SLURM - Status des jobs
[ CATEGORY ] : //
[ DATE     ] :

La commande squeue affiche les informations des jobs dans la file d’attente sous forme de plusieurs colonnes dont ST et NODELIST (REASON). La colonne ST indique le statut du job et NODELIST (REASON) donne plus d’informations sur la raison pour laquelle le job n’a pas démarré. # squeueJOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)10674 n01_25 particule emmetbrown R 17:00 4 n13-[01-04]10668 node quantique martymcfly R 17:45

[ TITLE    ] : SLURM - Observer des jobs
[ CATEGORY ] : //
[ DATE     ] :

Pour observer de plus près le comportement d’un job, on peut utiliser les commandes sstat, ssacct, scontrol et même squeue. Extrait du manL’aide des commandes précise : squeue : afficher les informations sur les jobs dans la file d’attente sstat : afficher le status des jobs sacct : afficher les logs des jobs scontrol : afficher/modifier des jobs, noeuds, partitions, réservations, configuration globale Pour annuler un job : scancel : annuler un job Statut des jobs et de la node

[ TITLE    ] : SLURM - Script de soumission
[ CATEGORY ] : //
[ DATE     ] :

Vous trouverez ci-dessous un certain nombre d’exemples de scripts pouvant être utilisés comme modèle pour créer vos propres scripts de soumission SLURM. Simple scripts de soumissionLes jobs nécessitent un fichier de script que SLURM interprète et exécute. Le fichier SBATCH contient à la fois des commandes spécifiques à SLURM à interpréter ainsi que des programmes à exécuter. Vous trouverez ci-dessous un exemple simple d’un job pour exécuter un fichier Stata do. ScriptCe fichier est nommé myscrip

[ TITLE    ] : SLURM/SGE Cheat Sheet
[ CATEGORY ] : //
[ DATE     ] :

Equivalences des commandes SLURM/SGE Commandes utilisateur Explications Commande Slurm Commande SGE Interactive login # srun --pty bash # qlogin # srun -p "part_name" --pty bash # sdev Job submission # sbatch [script file] # qsub [script file] Job deletion # scancel [job_ID] # qdel [job_ID] Job status all # squeue -all # qstat -f Job status # squeue [job_ID] # qstat -u \ * [-j job_ID] Job user status # squeue -u [user name] # qstat [-u user name] Job hold # sco

[ TITLE    ] : SLURM - Comptes/Associations/Groupes
[ CATEGORY ] : //
[ DATE     ] :

Il existe quatre composants principaux dans Slurm : le compte Unix, les groupes Unix, les comptes Slurm et les associations Slurm. Sous UnixCompte/utilisateur UnixTout utilisateur doit avoir un compte unix pour s’authentifier à un cluster. Certaines informations sont également associées à ce compte comme le shell par défaut, le $HOME, etc. La commande getent passwd $USER permet d’en savoir plus le compte unix. Groupes UnixChaque compte/utilisateur Unix appartient à au moins un groupe, du même no

[ TITLE    ] : SLURM - QOS Gestion
[ CATEGORY ] : //
[ DATE     ] :

Il est possible de spécifier une QOS (Quality Of Service) pour chaque jobs soumis dans Slurm, la commande sacctmgr permet de les gérer. Gérer les QOSManipulation des QOSAjoutAjouter une nouvelle QOS : # sacctmgr add qos ParticuleCalc Ajouter une QOS avec directement des paramètres : # sacctmgr -i add qos high set priority=1000# sacctmgr -i add qos medium set priority=500# sacctmgr -i add qos low set priority=100 AffichageAfficher la QOS ParticuleCalc : # sacctmgr show ParticuleCalc Afficher

[ TITLE    ] : SLURM - QOS généralités
[ CATEGORY ] : //
[ DATE     ] :

Il est possible de spécifier une QOS (Quality Of Service) pour chaque job soumis dans Slurm, la QOS affectera le job de 3 façons : Priorité Préemption Limites C’est la commande sacctmgr permet de gérer la QOS. Quality Of ServicePour changer et activer la QOS, il faut activer le plug-in Multifactor Job Priority en changeant l’option PriorityType à priority/multifactor dans slurm.conf Fichier slurm.conf : # Activate the Multifactor Job Priority Plugin with decay# PriorityType=priority/basicPrio

[ TITLE    ] : SLURM - Watch Nodes
[ CATEGORY ] : //
[ DATE     ] :

Un script en bash pour surveiller vos noeuds sous SLURM, le script vérifie si les noeuds tombent en drain ou drng et les relance automatiquement, il récupère ensuite les logs d’erreurs de SLURM sur le noeud et les place dans LOG_EXPORT_REPOSITORY. Le script est à lancer avec la commande watch : # watch -n <IntervaleSecondes> <CheminScript> Ou dans un cron : # crontab –e*/5 * * * * /root/scripts/Watchnode_SLURM.sh >> /var/log/slurm/custom/nodes.log 2>> /var/log/slurm/cust

[ TITLE    ] : Clustershell
[ CATEGORY ] : //
[ DATE     ] :

Créé à l’origine par l’équipe de développement système HPC Linux du CEA en France, ClusterShell est une bibliothèque de commandes qui permet d’administrer les principaux composants d’un centre de calcul : clusters de calcul, clusters de stockage et fermes de serveurs en fournissant principalement 3 outils d’administration qui, depuis le cluster principal, sont exécutés sur un ou plusieurs noeuds. Les 3 outils sont : nodeset: gérer les ensembles et les groupes de noeuds du cluster clush : exéc

[ TITLE    ] : SLURM - Statut des noeuds
[ CATEGORY ] : //
[ DATE     ] :

La commande sinfo permets d’afficher des informations comme le statut des noeuds ou des partitions sous SLURM.Cette commande affiche à la fois l’état des noeuds et peut renseigner un complément d’information, le code d’état (*, +, %, etc.) Pour des informations plus détaillées (non troquées), il faut utiliser les options N (--Node), e (--exact) et l (--long), la commande est : # sinfo -Nel Flag d’états possibles des noeuds Flag Description * Le noeud ne répond pas actuellement et ne se ver

[ TITLE    ] : SLURM - Fichiers de config et logs
[ CATEGORY ] : //
[ DATE     ] :

Fichiers principaux de SLURM Fichiers de configuration Configuration Files Définition acct_gather.conf Slurm configuration file for the acct_gather plugins burst_buffer.conf Slurm burst buffer configuration cgroup.conf Slurm configuration file for the cgroup support ext_sensors.conf Slurm configuration file for the external sensor support gres.conf Slurm configuration file for generic resource management helpers.conf Slurm configuration f

[ TITLE    ] : SLURM - Down ?
[ CATEGORY ] : //
[ DATE     ] :

SLURM semble down ? Voici un récapitulatif des vérifications préliminaires. VérificationsSlurm répondExécutez scontrol ping pour vérifier que le serveur maître est joignable : # scontrol pingSlurmctld(primary) at <ServerName> is UP Si la commande indique qu’il répond, il peut s’agir d’un problème de mise en réseau ou de configuration spécifique à un utilisateur ou à un nœud du cluster. Slurm ne répond pasExécutez scontrol ping pour vérifier que le serveur maître est joignable : # scontrol

[ TITLE    ] : SLURM - Erreur sur les noeuds
[ CATEGORY ] : //
[ DATE     ] :

Problème rencontrés avec des noeuds sous gestions SLURM. Etats possibles des noeuds2022/10/01/SLURM-Status-des-noeuds/ Commandes de baseVérifier l’état des noeudsAffiche uniquement la raison des noeuds en down, drained and draining : # sinfo -R Pour des informations plus détaillées (non troquées) : # sinfo -Nel Affiche le détail d’un noeud en particulier : # scontrol show nodes=<mynode> Equivalent à (sans le “s” à node) : # scontrol show node <mynode> Affiche tous les noeuds en

[ TITLE    ] : SGE - Attribuer des quotas
[ CATEGORY ] : //
[ DATE     ] :

Les quotas sour SGE permettent d’appliquer des limites à plusieurs types de ressources en fonctions des consommateurs. Types de ressources et types de consommateursRessourcesLes ressources peuvent être des : slots (coeurs) arch (architectures) mem_total (mémoire) num_proc (nombre de processeur) swap_total (mémoire swap) built-in resources (ressources interne) custom-defined resource (ressources ajoutées, comme un compilateur de licence) ConsommateursLes consommateurs de ressources peuvent être

[ TITLE    ] : SGE - Allouer des coeurs
[ CATEGORY ] : //
[ DATE     ] :

Certains users ont besoin de plus de ressources pour réaliser des calculs et il est possible de leur allouer personnellement plus de coeurs sous SGE. Lister les quotasCommandesPour lister tous les quotas définis, on utilise la commande qconf avec les options s, r, q, s, et l : # qconf -srqsl Pour voir tous les quotas détaillés : # qconf -srqs Pour voir un quotas en particulier il suffit de préciser son nom : # qconf -srqs [nom] ExemplesLister tous les quotas définis : # qconf -srqslmax_slots

[ TITLE    ] : SLURM - Création d'utilisateurs
[ CATEGORY ] : //
[ DATE     ] :

Créer des utilisateurs SLURM. Lister l’ensemble des utilisateurs et comptes SLURMLes comptes SLURM se différentient des utilisateurs SLURM. UtilisateursSur votre cluster : # sacctmgr list user Exemple de sortie : User Def Acct Admin------ ----------- ---------dustin ST Nonejim ST Noneeleven ST NoneErica ST Nonedartagn+ DG Noneroot Administ+mike ST Nonewill ST Nonebilly ST

[ TITLE    ] : SLURM - Monter un noeud
[ CATEGORY ] : //
[ DATE     ] :

Pour monter un volume calculs sur le point de montage /home/calculs pour les différents nœuds SLURM concernés Sur NetApp GUIVérifier la version de NFSNetApp propose aussi NFS version 4, pour le vérifier, aller dans l’interface Web NetApp. Récupérer les @IPRécupérer les “IP_ADDRESS_NFS“ : Dans > Volumes > vol_calculs > Déplier la flèche > Récupérer les @IP NFS @IP_A:/vol/vol_calculs @IP_B:/vol/vol_calculs Sur le clusterInformations sur les noeudsRécupérer les infos sur les noeuds : #