wiki:tutogangaanalysis

Soumission d'un job d'analyse athena/DQ2 avec GANGA

Ce tutoriel décrit comment executer un job d'analyse en utilisant:

  • GANGA
  • Le software d'ATLAS athena
  • Un package d'analyse à compiler (Merci à Annick Lleres).
  • Des fichiers de dataset obtenus avec DQ2.

Pour lancer un job, vous avez besoin d'un fichier

  • L'archive du package package.tgz contenant le package d'analyse à compiler.
    Le package fourni exécute produit des DPD à partir d'AOD.
  • gangaScript qui est le fichier qui contient la séries d'instructions à executer sous GANGA pour lancer le job. (à adapter selon votre cas)

Prérequis

  • Installez et configurez GANGA.
  • Préparer votre environnement comme pour un job à lancer en local
  • Décompressez le package fourni sous testarea puis initialiser le (après l'avoir éventuellement compilé)

sh-3.00$ cp package.tar.gz testarea/14.2.20/package.tar.gz
sh-3.00$ cd testarea/14.2.20/
sh-3.00$ tar -xvzf package.tar.gz
...
sh-3.00$ ls
TopAnalysis  TopAnalysis.tgz
sh-3.00$ cd testarea/14.2.20/TopAnalysis/cmt/
sh-3.00$ cmt config
sh-3.00$ source setup.sh
sh-3.00$ gmake

Lancer Ganga

Pour les utilisations suivantes de GANGA avec ce package vous pouvez commencer directement d'ici.

Initialisation de l'environnement

Initialiser l'environnement athena
Initialiser le package d'analyse

Le fichier joboptions

sh-3.00$ cd testarea/14.2.20/TopAnalysis/run/ 
sh-3.00$ ls
PoolFileCatalog.xml  PoolFileCatalog.xml.BAK  RunTopAnalysisDPD.py   TopAnalysisDPD.py

Placez vous dans le répertoire run. Vous devez y trouver les fichiers joboptions !RunTopAnalysisDPD.py et !TopAnalysisDPD.py
Le fichier RunTopAnalysisDPD.py inclus le fichier TopAnalysisDPD.py, vous devrez préciser ceci à GANGA enrenseignant le paramètre "inputsandbox"
Deux lignes sont importantes dans le fichier !RunTopAnalysisDPD pour GANGA:

InputCollections = [ "AOD.pool.root" ]
OutputFileName = "TopAnalysisDPD.root"

Lors de la soumission du job, GANGA va analyser le fichier de joboptions et initialiser:
InputCollections avec les bonnes valeurs (la liste des fichiers d'un dataset à analyser)
OutputFileName en ajoutant une numérotation automatique à TopAnalysisDPD.root si plusieurs fichiers sont produits.

Initialisation de l'environnement d'exécution dans GANGA

sh-3.00$ ganga
Enter GRID pass phrase:
Your identity: /O=GRID-FR/C=FR/O=CNRS/OU=LPSC/CN=Fabian Lambert
Creating temporary proxy ....................................... Done
Contacting  lcg-voms.cern.ch:15001 [/DC=ch/DC=cern/OU=computers/CN=lcg-voms.cern.ch] "atlas" Done
Creating proxy ................................................ Done
Your proxy is valid until Tue Oct 28 14:29:49 2008

*** Welcome to Ganga ***
Version: Ganga-5-0-10
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 Distributed Analysis Support is provided by the "Distributed Analysis Help" HyperNews forum. You can find the forum at 
    https://hypernews.cern.ch/HyperNews/Atlas/get/distAnalysisHelp.html
or you can send an email to hn-atlas-dist-analysis-help@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 0 jobs in "templates", completed in 0 seconds

Lancer le job

Pour lancer votre job vous pouvez choisir de taper une a une les instructions que vous avez dans gangascript, ou faire un copier/coller de ces instructions afin que GANGA les lance en une fois. Pensez à adapter ce fichier à votre cas.

In [3]:j = Job()
In [4]:j.application=Athena()
In [5]:j.application.prepare_old(athena_compile=True) 
In [6]:j.application.option_file="$HOME/testarea/14.2.20/TopAnalysis/run/RunTopAnalysisDPD.py"
In [7]:j.inputsandbox=['TopAnalysisDPD.py']
In [8]:j.application.max_events=100
In [9]:j.inputdata=DQ2Dataset()
In [10]:j.inputdata.dataset="fdr08_run2.0052280.physics_Egamma.merge.AOD.o3_f8_m10"
In [11]:j.outputdata=DQ2OutputDataset()
In [12]:j.outputdata.outputdata=['TopAnalysisDPD.root']
In [13]:j.splitter=DQ2JobSplitter()
In [14]:j.splitter.numsubjobs=6
In [15]:j.splitter.numfiles=1
In [16]:j.merger=AthenaOutputMerger()
In [17]:j.backend=LCG()
In [18]:j.backend.requirements=AtlasLCGRequirements()
In [19]:j.backend.requirements.sites=['IN2P3-LPSC_DATADISK']
In [20]:j.backend.requirements.other=["other.GlueCEPolicyMaxCPUTime >= ( 50000 / other.GlueHostBenchmarkSI00)"]
In [21]:j.submit()

Cette suite d'instructions mérite quelques explications :

  • Ligne 3 : Définition d'un objet job
  • Ligne 4 : Nous allons utiliser athena
  • Ligne 5 : Le package sera compilé sur le WN
  • Ligne 6 : Emplacement du fichier joboptions
  • Ligne 7 : Le fichier TopAnalysisDPD.py est inclus dans RunTopAnalysisDPD.py, il est déclaré dans la inputsandbox.
  • Ligne 8 : On limite le nombre d'event a 100 par jobs pour ce test
  • Ligne 9 : Les données en entrées sont un dataset gérer par DQ2
  • Ligne 10 : Le LDN de ce dataset est défini ici
  • Ligne 11 : Les données en sortie seront placées dans un dataset
  • Ligne 12 : Base du nom des fichiers dans le dataset de sortie (voir plus haut)
  • Ligne 13 : Création du gestionnaire qui va gérer le "splittage" du job en subjobs en fonction des fichiers présent dans le dataset en entrée.
  • Ligne 14 : Nombre de subjobs
  • Ligne 15 : Nombre de fichiers par subjobs
  • Ligne 16 : ... Sans objet ici
  • Ligne 17 : backend utilisé
  • Ligne 18 : Création de l'objet gestionnaire des requirements sur le backend. (Cela va permettre à GANGA de trouver l'endroit le plus approprié pour exécuter le job)
  • Ligne 19 : Les données doivent être prises sur ce site
  • Ligne 21 : Choisir une queue batch où le job peut tourner pendant un temps max de 50000 s
  • Ligne 20 : Lancement du job

Récuperer les données

Au fur et à mesure du déroulement du job, vous pouvez suivre son état en tapant

In [19]:jobs(<jobID>) 

Quand le statut du job est completed (i.e. tous les subjobs sont completed) vous pouvez récupérer le dataset créer avec dq2-get

sh-3.00$ dq2-list-dataset "userFL*"
userFL08.FabianLambert.ganga.2.20081024
sh-3.00$ dq2-get userFL08.FabianLambert.ganga.2.20081024
Querying DQ2 central catalogues to resolve datasetname userFL08.FabianLambert.ganga.2.20081024
Datasets found: 1
userFL08.FabianLambert.ganga.2.20081024: Querying DQ2 central catalogues for replicas...
Querying DQ2 central catalogues for files in dataset...
userFL08.FabianLambert.ganga.2.20081024: Using site IN2P3-LPSC_USERDISK
userFL08.FabianLambert.ganga.2.20081024: Querying local file catalogue of site IN2P3-LPSC_USERDISK...
... 

Notez que conformément à ce qui a été défini dans .gangarc, les fichiers du dataset ont été stockés sur le space-token IN2P3-LPSC_USERDISK Pour choisir un autre space-token, il vous faut taper l'instruction suivante dans GANGA (?? pas sur de ça...)

In [xx]: config['DQ2']['DQ2_LOCAL_SITE_ID']= "<space token>"

Autres exemples

En attachement sont donnés deux autres exemples de script ganga

  • gangascript_cloud.txt : Pour lancer son job sur le cloud FR
  • gangascript_ce.txt : Pour lancer son job sur une queue batch d'un CE donné

up

Last modified 15 years ago Last modified on 08/06/2009 16:12:53

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.