Turing : commandes de contrôle des travaux batch

Les travaux sont gérés sur l'ensemble des noeuds par le logiciel IBM LoadLeveler. Les principales commandes utiles pour contrôler vos travaux sont présentées ci-dessous.

Pour soumettre un travail : llsubmit

La commande llsubmit est utilisée pour soumettre un travail en batch :

$ llsubmit mon_job.ll
llsubmit: Processed command file through Submit Filter: ''/bglocal/loadl/Fidris/llsubmit_exit''.
llsubmit: The job ''turing1.idris.fr.2208'' has been submitted.

Toute autre sortie implique une erreur dans le job; parfois un message succinct mis en place par l'IDRIS vous indiquera quel paramètre de soumission a été omis. Note : à  l'IDRIS, la commande llsubmit n'admet aucune option.  

Note : à l'IDRIS, la commande llsubmit n'admet aucune option.

Pour afficher les travaux dans les files d'attente : llq

La commande llq [-u login] affiche des informations sur l'évolution et la consommation de tous les travaux batch sur la machine. L'option -u restreint l'affichage aux travaux appartenant au login spécifié; le vôtre par exemple.

$ llq -u rlab432
Id                       Owner      Submitted   ST PRI Class        Running On
------------------------ ---------- ----------- -- --- ------------ -----------
turing1.2208.0           rlab432    10/10 16:53 I  100 2Rt1
1 job step(s) in queue, 1 waiting, 0 pending, 0 running, 0 held, 0 preempted

La colonne ST (Status) indique si votre job est R (Running) ou I (Idle) en attente d'être lancé. Les autres états possibles sont NQ (Not Queued) en dehors des files d'attente, H (Hold), C (Completed) quand une étape est terminée mais que les autres étapes du travail sont encore en cours, enfin CS (Changing State) quand un travail est terminé mais en train de sortir des files d'attente.

Attention : si vous ne trouvez pas le retour d'un travail terminé, c'est très probablement que vous n'êtes pas dans le répertoire de soumission. Il est aussi possible que vous soyez en dépassement de quota sur Turing, ou encore que vous ayez omis de spécifier les fichiers de sortie et d'erreur dans votre script de soumission (lignes # @ output et # @ error). Dans ce dernier cas, votre retour de job est perdu.

Pour supprimer un travail : llcancel

La commande llcancel permet de supprimer un travail. Par exemple, pour supprimer le travail turing1.2208.0 s'exécutant sur la machine BlueGene/Q :

$ llcancel turing1.2208
llcancel: Cancel command has been sent to the central manager

Pour contrôler la consommation (et les performances) de vos travaux : idrjar

La commande IDRIS idrjar affiche les informations concernant la consommation de vos travaux batch. Ces informations ne sont disponibles que le lendemain de la fin du travail, après traitement des données comptables dans la nuit. Par contre, vous pouvez accéder à tous vos travaux depuis le début de l'année en cours (option -e). La commande idrjar permet notamment l'affichage :

  • du temps Elapsed facturé (et du temps Cpu, pour information) ;
  • de la mémoire demandée et utilisée ;
  • des dates de soumission, de démarrage et de fin d'exécution ;
  • de l'efficacité (intéressant pour les travaux parallèles).

Pour plus d'informations lancez idrjar -h sur Turing. Voici quelques exemples d'utilisation :

$ idrjar -d01
|----------------------------------------------|
|--- IDRIS/CNRS. Version du  5 fevrier 2014 ---|
|----------------------------------------------|

Sorties concernant l'identifiant rlab432 pour la periode du
        ==> 01 janvier 2014 au 31 janvier 2014
        
        
 Owner                  Job Name                       JobId     Queue tEse   #T   S
------- ---------------------------------------- --------------- ----- ----- ----- -
rlab432 run_test_small                           turing2.9567.0  MRt1   3069  1024 C
rlab432 run_test_big                             turing2.9787.0  2Rt3  36684  8192 C
rlab432 run_test_short_medium                    turing1.10109.0 1Rt2    284  4096 R
---------------------------------------------------------------------------------------
        CONSOMMATION TOTALE DES TRAVAUX CI-DESSUS ==> 304821248s, soit 84672.57h
------------------------------- LEGENDE -------------------------------
tEse  : temps ''Elapsed'' consomme en secondes.
#T    : nombre de coeurs reserves.
S     : C (completed) ==> travail termine normalement.
        R (removed)   ==> travail detruit en cours d'execution a l'aide
                          de la commande ''llcancel'' par exemple.

Autre exemple, pour le même mois mais avec cette fois-ci le maximum d'informations (format long) :

$ idrjar -d01 -l
|---------------------------------------------|
|--- IDRIS/CNRS. Version du 5 fevrier 2014 ---|
|---------------------------------------------|

Sorties concernant l'identifiant rlab432 pour la periode du
       ==> 01  janvier 2014 au 31 janvier 2014
       
       
     JobId      Queue Qdate Bdate Edate     tEse      #T  S
--------------- ----- ----- ----- ----- ------------ ---- -
turing2.9567.0  MRt1  27/01 29/01 29/01         3069 1024 C
                      17:59 08:05 08:57 000+00:51:09
turing2.9787.0  2Rt1  29/01 29/01 30/01        36684 8192 C
                      12:08 16:49 03:00 000+10:11:24
turing2.10109.0 1Rt2  30/01 30/01 30/01          284 4096 C
                      15:31 15:31 15:36 000+00:04:44
-----------------------------------------------------------


  CONSOMMATION TOTALE DES TRAVAUX CI-DESSUS ==> 304821248s, soit 84672.57h

---------------------------------- LEGENDE ----------------------------------
tEse  : temps ''Elapsed'' consomme en secondes.
#T    : nombre de coeurs reserves.
S     : C (completed) ==> travail termine normalement.
        R (removed)   ==> travail detruit en cours d'execution a l'aide
                          de la commande ''llcancel'' par exemple.

Pour lister l'ensemble des paramètres LoadLeveler de vos travaux : idrllsummary

La commande IDRIS idrllsummary permet de lister l'intégralité des paramètres de vos travaux dès qu'ils sont terminés.

  • c'est la seule commande qui vous donne accès aux informations des travaux terminés dans la journée en cours : les statistiques comptables des travaux sont accessibles par la commande idrjar (c.f. ci-dessus) le lendemain seulement ;
  • si aucun travail ne répond aux critères de sélection par défaut, ou aux options spécifiées (en cas de faute de frappe dans le numéro du job par exemple), alors la commande ne répond rien : il n'y a pas de message d'erreur;
  • si un ou plusieurs travaux répondent aux critères de sélection par défaut ou aux critères spécifés par des options, la commande est très bavarde : il est nécessaire d'en rediriger la sortie dans un fichier (pour édition ultérieure) ou de la filtrer pour en restreindre le volume.

Quelques exemples :
je n'ai pas soumis de job ce jour. La commande ne répond donc rien à ma demande (par défaut, la date est celle du jour) :

$ idrllsummary

Par contre, j'ai soumis des travaux le 27 janvier (voir la sortie du idrjar -d01 ci-dessus).
Le travail lancé le 27 janvier s'est exécuté et terminé le 29. Pour avoir les informations que LoadLeveler a enregistré à la fin de l'exécution du travail, je lance :

$ idrllsummary -j turing2.idris.fr.9567 -d 29/01/2013
================== Job turing2.idris.fr.9567 ==================
              Job Id: turing2.idris.fr.9567 
            Job Name: run_test_small

 [..]

soit environ 160 lignes.
Pour en extraire les informations pertinentes, vous pouvez filtrer les lignes affichées de la manière suivante :

$ idrllsummary -j turing2.idris.fr.9567 -d 29/01/2014 | grep Time
   Eligibility Time: Wed 29 Jan 2014 08:05:32 AM CET
      Dispatch Time: Wed 29 Jan 2014 08:05:56 AM CET
         Start Time: Wed 29 Jan 2014 08:05:56 AM CET
Good Ckpt Time/Date: 
    Ckpt Accum Time: 0
 BG Block Boot Time: Wed 29 Jan 2014 08:05:32 AM CET
  Starter User Time: 00:00:00.076887
Starter System Time: 00:00:00.012984
 Starter Total Time: 00:00:00.089871
     Step User Time: 00:00:00.257322
   Step System Time: 00:00:00.221822
    Step Total Time: 00:00:00.479144

Les seules informations significatives sont ici celles relatives au lancement du travail : Eligibility, Dispatch, Start et Boot. Les autres informations font référence aux ressources prises sur la frontale Turing et pas aux nœuds de calcul.
Vous pouvez aussi ajuster le filtrage pour obtenir les informations sur tout autre paramètre qui vous intéresse. Dans le cas d'un job multi-steps, les informations sont répétées autant de fois qu'il y avait d'étapes dans votre travail.