Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ganga 4 Basics - Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, November 2005.

Similar presentations


Presentation on theme: "Ganga 4 Basics - Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, November 2005."— Presentation transcript:

1 Ganga 4 Basics - Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, November 2005

2 Ganga Tutorial, April 2005 2 Contents What is Ganga Quick introduction to Python  Statements, variables, functions  Modules, classes, objects Basics of Ganga Scripting Interface  simple executable jobs  Job Registry and looping

3 Ganga Tutorial, April 2005 3 What is Ganga? AtlasPROD DIAL DIRAC LCG2 gLite localhost LSF submit, kill get output update status store & retrieve job definition prepare, configure Ganga4 Job scripts Gaudi Athena AtlasPROD DIAL DIRAC LCG2 gLite localhost LSF

4 Ganga Tutorial, April 2005 4 Ganga Web Site:  http://cern.ch/ganga http://cern.ch/ganga Ganga Tutorial Bug reports Ganga is based on Python 2.2  Python Website: http://www.python.orgwww.python.org  Excellent Python Tutorial: http://docs.python.org/tut/tut.html Other resources:  IPython page: http://ipython.scipy.org/ Documentation

5 Ganga Tutorial, April 2005 5 Running Ganga LHCb account in lxplus % GangaEnv The last public release is 4.0.1. It is a default choice. Press ENTER. % ganga *** Welcome to Ganga *** Version: Ganga-4-0-1 Documentation and support: http:/cern.ch/ganga Type help() or help('index') for online help. You will be asked few questions. Answer “yes” by pressing ENTER. GRID certificate: type your password or press Control-D several times. To quit press Control-D at the interactive prompt In[1]: ^D Do you really want to exit ([y]/n)? %

6 Ganga Tutorial, April 2005 6 Ganga Text Prompt Ganga is based on python 2.2 and has an enhanced python prompt (IPython):  python programming/scripting myvariable = 5 print myvariable*10  easy access to the shell commands !less ~/.gangarc # personal config file !pwd  history  TAB completion it works on keywords, variables, objects, try: –my  many more features

7 Ganga Tutorial, April 2005 7 x = 2 print x*3 # you may also skip print 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 len help(len) Python: Statements, Variables

8 Ganga Tutorial, April 2005 8 print range(11) 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]) blist = [square(x) for x in alist] Python: Functions

9 Ganga Tutorial, April 2005 9 import sys print sys.argv import os print os.environ['HOME'] from os import environ from os import * import math, cmath print math.cos(math.pi) v =(1+1j) print v*v math.log(-1) # exception Python: Modules

10 Ganga Tutorial, April 2005 10 # user defined classes a = MyClass(2,3) a.my_method(1) #built-in classes: for example strings s = "hello at the tutorial" # double quotes s.split() s.count('a') s.upper() dir(s) if 'tut' in s: print 'tut is in ',s print '-'*20 # single quotes Python: Classes and Objects

11 Ganga Tutorial, April 2005 11 # file objects f = file('/etc/password') lines = f.readlines() print len(lines) # writing files f2 = file('testfile','w') print >> f2, “this is a test”,20*'-' f2.close() dir(f) Python: Files

12 Ganga Tutorial, April 2005 12 Job Objects and Job Registry [In:] j = Job() [In:] print j [In:] print j.application [In:] print j.backend # job registry: a list of all your jobs [In:] jobs [In:] jobs[1] Ganga Scripting

13 Ganga Tutorial, April 2005 13 Jobs Job ( status = 'new', inputdir = '/afs/cern.ch/user/k/kuba/gangadir/workspace/Local/2/input/', name = '', outputdir = '/afs/cern.ch/user/k/kuba/gangadir/workspace/Local/2/output/', outputsandbox = [], id = 2, application = Executable ( exe = '/bin/hostname', env = {}, args = [] ), inputdata = None, inputsandbox = [ ], backend = Local ( exitcode = None, id = None )

14 Ganga Tutorial, April 2005 14 [In:] j = Job() [In:] j.application.exe = '/bin/hostname' [In:] j.name = "MyTest" [In:] print j [In:] j.submit() # wait until job is completed and look # at the output directory [In:] print j.status [In:] print j.outputdir [In:] !ls $j.outputdir [In:] !cat $j.outputdir/stdout # the ! and $ syntax is IPython – you # cannot do it in normal python # it is useful for interactive work # instead of mouse copy-paste Basic Job Submission

15 Ganga Tutorial, April 2005 15 # once a job is submitted you cannot modify # it. if you want to submit a new job you # should create a new job object [In:] j2 = j.copy() [In:] j2.backend = LSF() [In:] j2.submit() # if you have GRID certificate you can try [In:] j3 = j.copy() [In:] j3.backend = LCG() [In:] j3.submit() # print jobs to see all your jobs More submission

16 Ganga Tutorial, April 2005 16 # see predefined plugins # (only some combinations supported) applications() backends() help('index') # submission in a loop for i in range(5): j = Job() j.application.exe="/bin/echo" j.application.args=["hello ",str(i)]) print j.id, j.inputdir print j.submit() More ideas

17 Ganga Tutorial, April 2005 17 # For frequently used jobs – use templates! t = JobTemplate(j3) print templates # Other useful methods j.kill() j.remove() # Removes the output as well! for j in jobs: j.kill() jobs.clean() # Faster! Deletes ALL jobs. More Ideas (2)

18 Ganga Tutorial, April 2005 18 Ganga 4.0.1 limitation: only one session running at a time Ganga.Runtime : CRITICAL Another Ganga session is running (lock file exists: /afs/cern.ch/user/k/kuba/gangadir/repository/.session_lock) Ganga.Runtime : CRITICAL Details: Ganga started at Tue Nov 15 12:31:44 2005, pid 1911, host: lxplus012.cern.ch Ganga.Runtime : CRITICAL THIS VERSION DOES NOT SUPPORT MULTIPLE SESSIONS USING THE SAME LOCAL JOB REPOSITORY Ganga.Runtime : CRITICAL TRY TO FIND OLD RUNNING SESSION AND QUIT IT FIRST Ganga.Runtime : CRITICAL If you cannot find the old session this may mean that Ganga terminated uncleanly (e.g. was killed). Ganga.Runtime : CRITICAL In this case, remove the lock file manually and restart Ganga If you remove the lock file and have two sessions running you may lose some jobs. Be warned! Try: ganga -h to see options Have a look also in the config file: ~/.gangarc Hints and Pitfalls

19 Ganga Tutorial, April 2005 19 Questions? Practical exercises Questions?


Download ppt "Ganga 4 Basics - Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, November 2005."

Similar presentations


Ads by Google