Difference between revisions of "FullChain on the grid"

From Atlas Wiki
Jump to navigation Jump to search
Line 25: Line 25:
  
 
On your local machine please download these files into a single directory.
 
On your local machine please download these files into a single directory.
 +
 +
== The main script (Higgs_ShipOff_Everything.py) ==
 +
This main task from this script is easily illustrated by the routines that are called for each job:
 +
<pre>
 +
    Create_Joboptions_File()                # create joboptions file
 +
    Create_JDL_File()                        # create jdl file
 +
    Create_Shell_Script()                    # craete shell script
 +
    Submit_Job_To_Grid()                    # submit job onto the grid
 +
    Cleanup_InputFiles()                    # save input files
 +
</pre>
 +
 +
For each job a unique joboptions file, a unique JDL-file and a unique shell script are produced. Then the job is submitted (locally or on the grid) and finally the input files are stored into a separate directory. As input you give the number of jobs and number of events per job followed by a RunType which specifies if you want to run locally or on the grid. If you want to submit onto the grid you need to be on a User Interface machine (At NIKHEF this is for example ui03.nikhef.nl).
 +
 +
<b>How to run. An example:</b>
 +
<pre>
 +
  Submitting a single job with 50 events locally:  Higgs_ShipOff_Everything.py 1 50 0
 +
  Submitting 20 jobs with 5000 events on the grid: Higgs_ShipOff_Everything.py 20 5000 1
 +
</pre>

Revision as of 16:13, 1 November 2005

A specific example

We'll describe here an example where we'll generate where you can pick your favorite Higgs mass and Z decay channel. This exercise also allows you to test the script on your local ATLAS setup. First make sure this runs before submitting 100's of jobs onto the grid.

The necessary (9) files

For each ATLAS job op the grid we'll need the following files:

1) JobOptions Files:
1.1) A joboptions file for our Generation job Generation_jobOptions_BASIC.py
(Here you specify the physics process and details of the output. In our case: Run pythia, and produce a POOL output file)
1.2) A joboptions file for our Simulation job Simulation_jobOptions_BASIC.py
(Here you specify some features about the simulation)
1.3) A joboptions file for our Digitization job Digitization_jobOptions_BASIC.py
(Here you specify some features about the digitization)
1.4) A joboptions file for our Reconstruction job Recontruction_jobOptions_BASIC.py
(Here you specify some features about the recontruction, the output is a ESD file)
1.5) A joboptions file for our ESDtoAOD job ESDtoAOD_jobOptions_BASIC.py
(Here you specify some features about the ESDtoAOD, the output is a EOD file)
2) A shell script that will run on the remote grid machine ShellScript_BASIC.sh
(The ATLAS settings will be set and the athena job will be started by this script)
3) A JDL file containing the names of all required input and output file jdl_BASIC.jdl
4) A tar-ball with ATlas software AtlasStuff.tgz

To facilitate the handling of a large number of jobs we have added two more scripts

5) A script that produces all input files: toShipOff_Everything.py
6) A general tool from Wouter to manage your jobs on the grid: gridmgr

On your local machine please download these files into a single directory.

The main script (Higgs_ShipOff_Everything.py)

This main task from this script is easily illustrated by the routines that are called for each job:

    Create_Joboptions_File()                 # create joboptions file
    Create_JDL_File()                        # create jdl file
    Create_Shell_Script()                    # craete shell script
    Submit_Job_To_Grid()                     # submit job onto the grid
    Cleanup_InputFiles()                     # save input files

For each job a unique joboptions file, a unique JDL-file and a unique shell script are produced. Then the job is submitted (locally or on the grid) and finally the input files are stored into a separate directory. As input you give the number of jobs and number of events per job followed by a RunType which specifies if you want to run locally or on the grid. If you want to submit onto the grid you need to be on a User Interface machine (At NIKHEF this is for example ui03.nikhef.nl).

How to run. An example:

  Submitting a single job with 50 events locally:  Higgs_ShipOff_Everything.py 1 50 0
  Submitting 20 jobs with 5000 events on the grid: Higgs_ShipOff_Everything.py 20 5000 1