ganga 3 clip tutorial jakub t. moscicki arda/lhcb ganga tutorial, april 2005

13
Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

Upload: todd-waters

Post on 27-Dec-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

Ganga 3 CLIP Tutorial

Jakub T. MoscickiARDA/LHCb

Ganga Tutorial, April 2005

Page 2: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/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

Page 3: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 4: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 5: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 6: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 7: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 8: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 9: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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 } }

Page 10: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 11: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

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

Page 12: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

Ganga Tutorial, April 2005 12

j = Job(application="DaVinci")print jj.submit()

Default DaVinci Job Submission

Page 13: Ganga 3 CLIP Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, April 2005

Ganga Tutorial, April 2005 13

• Questions?

• Practical exercises

Questions?