ganga 3 clip tutorial jakub t. moscicki arda/lhcb ganga tutorial, april 2005
TRANSCRIPT
Ganga 3 CLIP Tutorial
Jakub T. MoscickiARDA/LHCb
Ganga Tutorial, April 2005
Ganga Tutorial, April 2005 2
Contents
• Quick introduction to Python Statements, variables, functions Modules, classes, objects
• Basics of Ganga Scripting Interface simple executable jobs Simple DaVinci jobs Job Registry and looping
Ganga Tutorial, April 2005 3
• Python Website: www.python.org
• Excelent Python Tutorial: http://docs.python.org/tut/tut.html
• Documentation: http://docs.python.org/index.html
• How to start on lxplus at CERN (python 2.2)% pythonPython 2.2.2 (#1, Jan 30 2003, 21:26:22)>>> ^D%
Python Quickstart
Ganga Tutorial, April 2005 4
• x = 2print x*3
if x==2: print "yes, x==2" # NOTE INITIAL SPACES!
alist = [1,2,3]for y in alist: print y
print len(alist) # built-in function lenhelp(len)
Statements, Variables
Ganga Tutorial, April 2005 5
• print range(10)help(range)
def square(v): return v*v
print square(x)
alist = [1,2,3]for i in range(len(alist)): alist[i] = square(alist[i])
Functions
Ganga Tutorial, April 2005 6
• import sysprint sys.argvsys.exit(-1)
import osprint os.environ['HOME']
from os import environfrom os import *
import math, cmath
Modules
Ganga Tutorial, April 2005 7
• # user defined classes
a = MyClass(2,3)a.my_method(1)
#built-in classes: for example strings
s = "hello at the tutorial"s.split()s.count('a')s.upper()
dir(s)
Classes and Objects
Ganga Tutorial, April 2005 8
• Start Ganga in text mode:% ganga -t>>> from Ganga.CLIP import *
• Job Objects and Job Registry
j = Job()print jprint j.applicationprint j.backend
print jobsprint jobs[1]
Ganga Scripting
Ganga Tutorial, April 2005 9
Jobs
Job { status = 'new' , name = '' , stdout = None , stderr = None , directory = '/afs/cern.ch/user/k/kuba/myGangaJobs/Job20054141034261971223340468' , exitcode = None , id = 7 , application = Executable { outputfiles = [] , inputfiles = [] , parameters = [] , exe = '/afs/cern.ch/user/k/kuba' } , backend = Local { id = None } }
Ganga Tutorial, April 2005 10
• j = Job()j.application.exe = '/bin/hostname'j.name = "MyTest"print jj.submit()print j.statusprint j.directory+'/output'
•### open new terminal and inspect output% cat OUTPUTDIR/std.out
Basic Job Submission
Ganga Tutorial, April 2005 11
•for i in range(5): j = Job(exe="/bin/echo", parameters=["hello ",str(i)])
for j in jobs: print j.id, j.directory print j.submit()
Jobs in a loop
Ganga Tutorial, April 2005 12
•
j = Job(application="DaVinci")print jj.submit()
Default DaVinci Job Submission
Ganga Tutorial, April 2005 13
• Questions?
• Practical exercises
Questions?