OAR

Introduction au gestionnaire de jobs

Notion de cluster

Un cluster est un ensemble de machines qui se compose d’une tête de calcul, aussi appelée frontale, (pour nous il s’agit de legendre) et de serveurs de calcul, appelés noeuds de calcul.

Une frontale est la machine sur laquelle l’utilisateur se connecte en ssh, tandis que les noeuds sont les machines sur lesquelles l’utilisateur fait tourner ses programmes.

Tous les programmes que l’utilisateur lance se font depuis la frontale en utilisant un gestionnaire de ressources chargé de trouver et d’allouer les ressources requises parmis les noeuds.

Le gestionnaire de ressources utilisé est OAR .

Notion de job

Le job est ce que l’utilisateur soumet au gestionnaire de ressources pour exécuter un programme.

Il est composé d’une description des ressources nécessaires à l’exécution du programme et les commandes permettant cette exécution, généralement fournies dans un script.

Parmi les ressources requises par le gestionnaire de ressources pour la soumission d’un job, on a le nombre de noeuds, de coeurs par noeud, et le temps de calcul maximal.

Si l’utilisateur omet ces informations, le gestionnaire applique des valeurs par défaut.

Les défauts sont 1 noeud, 1 coeur et 2h maximum.

Un job a un cycle de vie, il est :

  1. Soumis au gestionnaire

  2. En attente de ressources libres (Waiting)

  3. En exécution (Running)

  4. Terminé (Terminated)

Gestion des jobs oarsub

Soumettre un job oarsub

La commande pour soumettre un job est oarsub. Cette commande a de nombreuses options que l’on peut trouver en utilisant l’option −−help.

Soumettre un job interactif - oarsub

Une pratique courante pour bien appréhender le calcul sur un cluster est de soumettre un job interactif.

En bref, vous demandez des ressources, et le gestionnaire de ressources va vous connecter sur l’une d’entre elle ( un noeud sur lequel elle vous a alloué un coeur) à partir duquel vous pourrez lancez vos commandes/scripts/programmes en interactif.

A la fin du walltime, votre session est automatiquement tuée.

Si vous la quittez avant, le gestionnaire libérera vos ressources.

Commandes

Utilité

oarsub -I

Soumission basique de job en interactif:

oarsub -I -p "host='node142'"

Soumission de job en interactif sur un noeud spécifique avec son hostname :

oarsub -I -p "network_address='192.168.2.141'"

Soumission de job en interactif sur un noeud spécifique avec son IP:

oarsub -I -l nodes=1,walltime=1:00:00 --project admin

Soumission de job en interactif avec ressources et nom de projet spécifiés :

Soumission de base oarsub

Commandes

Utilité

oarsub -project <your-project> <command>

La forme la plus basique d’utilisation est celle où on précise uniquement le projet et la commande à lancer :

oarsub -project Projet1 /bin/hostname

Un exemple de soumission de la commande /bin/hostname :

Soumission avec un script oarsub

Commandes

Utilité

oarsub -S /home/username/chemin/vers/mon/script.sh

Pour réaliser une soumission avec un script il suffit de réaliser la commande en pointant vers son script :

Suivie de job - oarstat

Pour connaître l’état et les caractéristiques d’un job soumis , nous allons utiliser la commande oarstat dont voici quelques exemples :

Caractéristiques des jobs soumis par l’ensemble des utilisateurs sur le cluster :

Commandes

Utilité

oarstat

Caractéristiques des jobs soumis par l’ensemble des utilisateurs sur le cluster :

oarstat -u fred

Caractéristiques des jobs soumis par l’utilisateur « fred » :

oarstat -j jobid

Caractéristiques spécifique du job identifié par son numéro « jobid » :

oarstat -f -j jobid

Caractéristiques complet full spécifique du job identifié par son numéro « jobid »:

oasrtat -s -j jobid

Statut du job identifié par son numéro « jobid » ( W - Waiting, R - Running):

Suppression de jobs - oardel

La commande pour supprimer un job en cours est oardel :

Commandes

Utilité

oarstat | grep fred | awk '{print $1}' | xargs oardel

Suppression du job en cours identifié par son numéro « jobid »:

oardel jobid1 jobid2

Suppression des jobs en cours identifié par son numéro « jobid1 » et « jobid2 » :

oardel jobid

Suppression de l’ensemble des jobs en cours de l’utilisateur fred :