Outils pour utilisateurs

Outils du site


premierspas

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
premierspas [2018/03/28 16:17] hetoussapremierspas [2026/03/20 14:20] (Version actuelle) admin
Ligne 1: Ligne 1:
- +====== Utilisation du cluster et de SLURM ======
-=== Utilisation du cluster et de SLURM ===+
  
 Un **cluster** est un regroupement de machines dédiées au calcul. Il est composé d'une machine frontale ("porte d'entrée" du cluster) et de plusieurs machines de calcul, appelées nœuds, et éventuellement hétérogènes ([[:machines|voir les nœuds du cluster du LIMOS]]). Un **cluster** est un regroupement de machines dédiées au calcul. Il est composé d'une machine frontale ("porte d'entrée" du cluster) et de plusieurs machines de calcul, appelées nœuds, et éventuellement hétérogènes ([[:machines|voir les nœuds du cluster du LIMOS]]).
Ligne 8: Ligne 7:
  
 =====Accès au cluster===== =====Accès au cluster=====
-On accède au cluster en se connectant (en ssh) sur le serveur **frontalhpc** (frontalhpc.rcisima.isima.fr) et en utilisant le login / mot de passe de son compte habituel. Pour exécuter un programme sur un nœud de calcul, l'utilisateur doit obligatoirement passer par l'ordonnanceur de tâches SLURM (voir section suivante). +On accède au cluster en se connectant (en ssh) sur le serveur **frontalhpc2020** et en utilisant le login / mot de passe de son compte ENT UCA (ou compte spécifiquement créé pour les extérieurs à l'UCA). Pour exécuter un programme sur un nœud de calcul, l'utilisateur doit obligatoirement passer par l'ordonnanceur de tâches SLURM (voir section suivante). 
  
  
Ligne 17: Ligne 16:
 SLURM (Simple Linux Utility for Resource Management) est un gestionnaire de ressources et ordonnanceur de tâches pour des clusters LINUX. Il permet de répartir au mieux les ressources de calcul (CPU, GPU, RAM) entre utilisateurs en gérant des files d'attente avec priorité.  SLURM (Simple Linux Utility for Resource Management) est un gestionnaire de ressources et ordonnanceur de tâches pour des clusters LINUX. Il permet de répartir au mieux les ressources de calcul (CPU, GPU, RAM) entre utilisateurs en gérant des files d'attente avec priorité. 
  
-Les processus d'un utilisateur sont confinés aux ressources (CPU notamment) qu'il a réservées : il ne peut pas accéder aux CPU réservés par d'autres utilisateurs. Cela permet d'assurer une certaine reproductibilité des exécutions d'un même programme, notamment au niveau des temps de calcul (contrairement à ce qu'il se passe sur des machines en libre accès).+Les processus d'un utilisateur sont confinés aux ressources (CPU notamment) qu'il a réservées : il ne peut pas accéder aux CPU réservés par d'autres utilisateurs. Cela permet d'assurer une certaine reproductibilité des exécutions d'un même programme, notamment au niveau des temps de calcul (contrairement à ce qu'il se passe sur des machines partagées en accès direct).
  
  
Ligne 37: Ligne 36:
 [{{  :socket.jpg?direct&  | **Définition Socket, core, thread** - extrait de [[https://slurm.schedmd.com/mc_support.html|https://slurm.schedmd.com/mc_support.html]]}}] [{{  :socket.jpg?direct&  | **Définition Socket, core, thread** - extrait de [[https://slurm.schedmd.com/mc_support.html|https://slurm.schedmd.com/mc_support.html]]}}]
  
-=== Les jobs et les tasks ===+=== Les jobs ===
  
-Dans SLURM un **job**  correspond à une requête d'allocation de ressources (CPU, RAM, temps de calcul) par un utilisateur. Un job est composé d'étapes (**steps**) et chaque étape effectue une tâche (**task**) ou plusieurs en parallèle. Une task correspond à un processus, une task peut utiliser un ou plusieurs CPU.+Dans SLURM un **job**  correspond à une requête d'allocation de ressources (CPU, RAM, temps de calcul) par un utilisateur. 
 +/* 
 + Un job est composé d'étapes (**steps**) et chaque étape effectue une tâche (**task**) ou plusieurs en parallèle. Une task correspond à un processus, une task peut utiliser un ou plusieurs CPU. 
 +*/
  
 === Les partitions === === Les partitions ===
Ligne 45: Ligne 47:
 Une partition dans SLURM correspond à un groupement logique de nœuds de calcul. Chaque partition est associée à des contraintes en termes de ressources (en particulier le temps de calcul maximum d'un job). Une partition peut être vue comme une file d'attente : l'utilisateur choisit la partition dans laquelle il soumet ses jobs en fonction de ses besoins. Une partition dans SLURM correspond à un groupement logique de nœuds de calcul. Chaque partition est associée à des contraintes en termes de ressources (en particulier le temps de calcul maximum d'un job). Une partition peut être vue comme une file d'attente : l'utilisateur choisit la partition dans laquelle il soumet ses jobs en fonction de ses besoins.
  
 +/*
 === Les features === === Les features ===
  
 L'administrateur peut affecter des features (tags) aux nœuds en fonction de leurs caractéristiques. L'utilisateur peut alors préciser les features nécessaires pour ses jobs afin que SLURM affecte les jobs uniquement aux nœuds possédant le / les features demandés. L'administrateur peut affecter des features (tags) aux nœuds en fonction de leurs caractéristiques. L'utilisateur peut alors préciser les features nécessaires pour ses jobs afin que SLURM affecte les jobs uniquement aux nœuds possédant le / les features demandés.
 +*/
  
 ===== Soumettre un job ===== ===== Soumettre un job =====
Ligne 56: Ligne 60:
   * soit lancer directement son job en ligne de commande à l'aide de la commande srun.   * soit lancer directement son job en ligne de commande à l'aide de la commande srun.
  
-==== Soumettre un job en utilisant un script ====+Sauf cas particulier, il est préférable d'utiliser un script (méthode simple, rapide et le script est réutilisé facilement). 
 + 
 + 
 +==== Soumettre un job en utilisant un script (méthode conseillée) ====
  
 L'utilisateur crée un script bash (.sh) dans lequel il précise les ressources dont il a besoin puis appelle son programme (étape 1). Ce script est ensuite soumis à SLURM via la commande sbatch qui affecte un numéro au job (étape 2). L'utilisateur crée un script bash (.sh) dans lequel il précise les ressources dont il a besoin puis appelle son programme (étape 1). Ce script est ensuite soumis à SLURM via la commande sbatch qui affecte un numéro au job (étape 2).
Ligne 118: Ligne 125:
 </code> </code>
  
 +<color #8b0000>Attention, les jobs soumis directement avec srun sont attachés au terminal, ils sont donc tués si vous fermez le terminal ou si vous vous déconnectez.</color>
  
premierspas.1522246653.txt.gz · Dernière modification : 2018/10/11 22:49 (modification externe)