Using ganga at NIKHEF
This page is under construction. The full text of this can be found here
You need an afs ticket to run ganga. Also, you need a grid certificate, and you need to setup the grid, as described in the DQ2 at Nikhef wiki. At the same time, assuming you set up the GRID tools according to Martijn’s Wiki, COMMENT OUT THE LINE: source /project/atlas/nikhef/dq2/dq2_setup.csh.NIKHEF If you setup the GRID tools in some other way, make sure the grid tools environment is not loaded. GANGA AND GRID TOOLS ENVIRONMENT CLASH! Apparently, it is a mismatch between the grod tools environment and the Athena environment. You can add the line to an alias or whatever, if you wish. Then setup ATHENA at NIKHEF as described in athena 12.0.6 Wiki.
To setup ganga, add the two following lines to the .cshrc:
setenv GANGA_CONFIG_PATH GangaAtlas/Atlas.ini
#for the local installation
#set path = (/public/public_linux/Ganga/install/4.3.0/bin/ $path)
#for the newest version installed on afs
set path = (/afs/cern.ch/sw/ganga/install/4.3.1/bin/ $path)
setenv LFC_HOST ’lfc03.nikhef.nl’
setenv LCG_CATALOG_TYPE lfc
or if you are working in a sh based shell (such as bash):
export GANGA\_CONFIG\_PATH=GangaAtlas/Atlas.ini
#for the local installation
#PATH=/public/public_linux/Ganga/install/4.3.0/bin/:${PATH}
#for the newest version installed on afs
PATH=/afs/cern.ch/sw/ganga/install/4.3.1/bin/:${PATH}
source LFC_HOST=’lfc03.nikhef.nl’
source LCG_CATALOG_TYPE=lfc
The first time ganga runs, it will ask to create a configuration file $HOME/.gangarc.
Answer yes, and edit the config file as follows:
-
In the section labelled [LCG] uncomment the line:
VirtualOrganisation = atlas
and add the line
DefaultSE = tbn18\.nikhef\.nl -
In the section labeled [Athena] uncomment the line:
# local path to base paths of dist-kits (lxplus example)
ATLAS_SOFTWARE = /data/atlas/offline/ -
In the section labeld [ROOT] uncomment and edit the lines:
location = /data/atlas/offline/12.0.6/sw/lcg/external/root/
version = 5.10.00e
arch = slc3_ia3_gcc323
Running ganga
You can start the ganga CLI by typing ganga on the commandline. This starts a python interface, where you can start defining your jobs. There are a few commands you can use to get around in ganga:
- jobs: Lists all the jobs that are defined in ganga. You can get to an indivudual job by typing:
- jobs[id]: where the id is listed in the second column of the jobs output.
One thing you can do with a job is view it’s status:
jobs[1].status()
This can be ’new’, ’submitted’, ’running’ or ’completed’. Once the job is
completed, you can view it’s output (which is stored by default in
$HOME/gangadir/workspace/Local/ jobid /output) by typing:
In [25]: jobs[0].peek()
Or look at a specific output file by typing:
In [25]: jobs[0].peek(’stderr’,’less’)
where stderr is the name of the file you want to view, and less the program
to view it with. You can kill a job using the kill() method, and remove it
from the jobs list with the remove() method. The most important command
by far is help(). This starts the interactive help program of ganga. After
typing it, you get a help> prompt. Typing index gives you a list of all possible
help subjects. The explanations are rather brief, but it does help you to find
methods of build-in classes of Ganga and it’s plugin. For instance, the atlas
plugin defines classes like DQ2Dataset. For more info on DQ2Dataset you
type DQ2Dataset at the help> prompt.
Running a simple Job
This little piece of code runs a Hello World Job on the LCG grid:
In [0] : j=Job()
In [1] : j.application=Executable(exe=’/bin/echo’,args=[’Hello World’])
In [2] : j.backend=LCG()
In [3] : j.submit()
The application that is run here is a UNIX executable. LCG() is another predefined class that takes care of a lot of details of submitting to the grid. After it is finished, you can type:
In[4] : j.peek(’stdout’,’cat’))
Which will output the expected ”Hello World”. You can also put these lines in a script my script.py, and at the ganga prompt type:
In [4]: execfile(’my_script.py’)