wiki:tutoGANGACmdLine

Version 6 (modified by /O=GRID-FR/C=FR/O=CNRS/OU=LPSC/CN=Fabian Lambert, 16 years ago) ( diff )

--

GANGA en mode ligne de commande

Ce tutoriel montre le principe de fonctionnement de GANGA. Le job exécuté est celui de l'exemple de soumission de job avec LCG2.

  • Lancement de GANGA

    L'exécutable GANGA se trouve sous $GANGA_INSTALL_DIR/install/X.Y.Z/bin où X.Y.Z est la version de GANGA.
    Pour plus de facilité, mettez à jour votre variable d'environnement $PATH avec le chemin vers l'executable. Pour lacer GANGA il suffit de taper la commande ganga.
    [lambert@lpsc-ui ~]$ ganga
    
    *** Welcome to Ganga ***
    Version: Ganga-5-0-4
    Documentation and support: http://cern.ch/ganga
    Type help() or help('index') for online help.
    
    This is free software (GPL), and you are welcome to redistribute it
    under certain conditions; type license() for details.
    
    
    ATLAS User Support is provided by the Hypernews Forum Ganga User and Developers
    You find the forum at https://hypernews.cern.ch/HyperNews/Atlas/get/GANGAUserDeveloper.html
    or you can send an email to hn-atlas-GANGAUserDeveloper@cern.ch
    
    GangaAtlas                         : INFO     Tasks read from file
    Ganga.GPIDev.Lib.JobRegistry       : INFO     Found 1 jobs in "jobs", completed in 0 seconds
    Ganga.GPIDev.Lib.JobRegistry       : INFO     Found 1 jobs in "templates", completed in 0 seconds
    
    
    In [1]:
    
    
    PS: Si il s'agit de votre première session, GANGA peut vous demander votre passphrase afin de créer un proxy VOMS à partir de votre certificat. Ce proxy sera utiliser par l'application lors de la soumission de job.
  • Définir un objet Job

    L'objet Job représente votre job, vous allez ensuite renseigner certains de ses attributs avant de le soumettre en utilisant ses fonctionnalités.
    Après le lancement de GANGA, vous obtenez un prompt, pour définir l'objet Job tapez la commande suivante.
    j=Job()
    
    j designe maintenant pour GANGA une instance d'un objet de type Job en mémoire.
  • Définir les paramètres du Job

    Notre job prend deux arguments en entrée. Nous l'indiquons à notre instance de job de la façon suivante :
    In [2]:j.application = Executable(exe = File('~/TestGrid/edg3/job.sh'), args=['girafe','flipflap'])
    
  • Soumission de job

    Pour soumettre le job, il faut utiliser la fonctionnalité submit de l'instance.
    In [3]:j.submit()
    Ganga.GPIDev.Lib.Job               : INFO     submitting job 18
    Ganga.GPIDev.Adapters              : WARNING  file /atlas/lambert/TestGrid/edg3/job.sh is not executable, overriding executable permissions in the input sandbox
    Ganga.GPIDev.Adapters              : INFO     submitting job 18 to Local backend
    Ganga.GPIDev.Lib.Job               : INFO     job 18 status changed to "submitted"
    Out[3]: 1
    
  • Obtenir l'ID du job

    Avec GANGA les jobs ont leur propre ID. Pour l'obtenir exécutez les commande suivante
    In [4]:print j.id
    18
    Ganga.GPIDev.Lib.Job               : INFO     job 18 status changed to "running"
    Ganga.GPIDev.Lib.Job               : INFO     job 18 status changed to "completed"
    
    PS: En cas de changements de statut du job, les changements apparaissent quand vous appuyer sur la touche return.
  • Obtenir une description complete du job

    Rien de plus simple, tapez j (la variable qui représente l'instance du Job) :
    In [5]:j
    Out[5]: Job (
     status = 'completed' ,
     name = '' ,
     inputdir = '/atlas/lambert/gangadir/workspace/lambert/LocalAMGA/18/input/' ,
     outputdir = '/atlas/lambert/gangadir/workspace/lambert/LocalAMGA/18/output/' ,
     outputsandbox = [] ,
     id = 18 ,
     info = JobInfo (
        submit_counter = 1 
        ) ,
     inputdata = None ,
     merger = None ,
     inputsandbox = [] ,
     application = Executable (
        exe = File(name='/atlas/lambert/TestGrid/edg3/job.sh',subdir='.') ,
        env = {} ,
        args = ['girafe', 'flipflap'] 
        ) ,
     outputdata = None ,
     splitter = None ,
     subjobs = 'Job slice:  jobs(18).subjobs (0 jobs)
    ' ,
     backend = Local (
        actualCE = 'lpsc-ui.in2p3.fr' ,
        workdir = '/tmp/tmptrit10' ,
        id = 2126 ,
        exitcode = 0 
        ) 
     ) 
    
  • Récupérer la sortie du job

    Les sortie du job sont stockées dans le répertoire indiqué dans le paramètre outputdir (voir ci-dessus)
    Il y a deux façon de lire une sortie de job; En utilisant directement les commandes shell avec un '!' devant
    In [6]:!ls $j.outputdir
    __jobstatus__  stderr  stdout  __syslog__
    
    In [7]:!cat $j.outputdir/stdout
    Comment t'appelles tu girafe ?
    Je m'appelle flipflap !
    
    ou alors en définnissant un objet fichier et en utilisant ses fonctionnalités
    In [8]:outfile = file(j.outputdir+'stdout')
    
    In [9]:print outfile.read()
    Comment t'appelles tu girafe ?
    Je m'appelle flipflap !
    
    une autre variante consiste à ouvrir le fichier avec le programme associé à son extension (nécessite d'avoir un service X11 qui tourne)
    In [17]:j.peek('stdout')
    
    dans notre cas, le fichier est ouvert avec vi dans une nouvelle fenêtre

up

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.