.. include:: special.rst 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. .. list-table :: * - Commandes - Utilité * - :code:`oarsub -I` - Soumission basique de job en interactif: * - :code:`oarsub -I -p "host='node142'"` - Soumission de job en interactif sur un noeud spécifique avec son hostname : * - :code:`oarsub -I -p "network_address='192.168.2.141'"` - Soumission de job en interactif sur un noeud spécifique avec son IP: * - :code:`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`` ----------------------------- .. list-table :: * - Commandes - Utilité * - :code:`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 : * - :code:`oarsub -project Projet1 /bin/hostname` - Un exemple de soumission de la commande ``/bin/hostname`` : Soumission avec un script ``oarsub`` ------------------------------------ .. list-table :: * - Commandes - Utilité * - :code:`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 : .. list-table :: * - Commandes - Utilité * - :code:`oarstat` - Caractéristiques des jobs soumis par l'ensemble des utilisateurs sur le cluster : * - :code:`oarstat -u fred` - Caractéristiques des jobs soumis par l'utilisateur "fred" : * - :code:`oarstat -j jobid` - Caractéristiques spécifique du job identifié par son numéro "jobid" : * - :code:`oarstat -f -j jobid` - Caractéristiques complet *full* spécifique du job identifié par son numéro "jobid": * - :code:`oasrtat -s -j jobid` - Statut du job identifié par son numéro "jobid" ( :red:`W` - Waiting, :red:`R` - Running): Suppression de jobs - ``oardel`` ================================ La commande pour supprimer un job en cours est ``oardel`` : .. list-table :: * - Commandes - Utilité * - :code:`oarstat | grep fred | awk '{print $1}' | xargs oardel` - Suppression du job en cours identifié par son numéro "jobid": * - :code:`oardel jobid1 jobid2` - Suppression des jobs en cours identifié par son numéro "jobid1" et "jobid2" : * - :code:`oardel jobid` - Suppression de l'ensemble des jobs en cours de l'utilisateur fred :