Application examples Oxana Smirnova (Lund, EPF) 3 rd NorduGrid Workshop, May23, 2002
Oxana Smirnova2 NorduGrid & applications The level of the NorduGrid stability allows to execute real tasks Most of the applications so far are in the high energy physics domain Apart of the simple curiosity and testing, there is a bare necessity to run ATLAS Data Challenge exercises –Requires a lot of computing power –Intensions are to run it in a distributed (Grid) manner a.s.a.p.
Oxana Smirnova3 Pre-requisites Valid NorduGrid credentials A machine with the User Interface installed –Includes minimal Globus client installation A user may want to make some personal adjustments: –.ngrc # Sample.ngrc file # Comments starts with # NGDEBUG=1 NGDOWNLOAD=/tmp –.ngiislist ldap://grid.nbi.dk:2135/O=Grid/Mds-Vo-name=NorduGrid ldap://grid.quark.lu.se:2135/O=Grid/Mds-Vo-name=NorduGrid
Oxana Smirnova4 Double heavy hadron production (* user-specified job name *) (jobName=Bsubc) (* standard output file *) (stdout="myoutput.dat") (* flag whether to merge stdout and stderr *) (join="yes") (* request notification on status change *) (notify="e & (* an executable *) (executable=bc_run) (* files to be staged in before the execution *) (inputFiles= (run.dat "") ) (* files to be staged out after the execution *) (outputFiles= (bc.hbook "") ) xRSL specifications:
Oxana Smirnova5 Double heavy hadron production ngsub –f bsubc.xrsl
Oxana Smirnova6 Re-used JETSET/PYTHIA generation Problem: –A legacy code (FORTRAN) uses specific input cards –Each job needs a new random seed “Gridification” is still trivial: –Generate xRSL files on-fly –Submit for execution a shell-script, wrapped around the actual executable
Oxana Smirnova7 Re-used JETSET/PYTHIA generation #!/bin/sh # Submits several run.sh jobs with different random seed if [ $# -eq 0 ]; then echo "" echo Usage: $0 njobs nevents echo "" exit 127 fi MAXCOUNT=$1 MAXEVT=$2 echo "Submitting $MAXCOUNT jobs, $MAXEVT events each..." FLOOR=10000 count=1 while [ "$count" -le $MAXCOUNT ] do number=0 while [ "$number" -le $FLOOR ] do number=$RANDOM done let "inseed = $number*100" jname="flong"$count outname=$jname".out" echo "Job" $jname "started with random seed" $inseed let "count += 1" cat ffun.xrsl & (executable=run.sh) (arguments=$inseed $MAXEVT) (executables=ffungen) (inputFiles=(ffungen "")) (outputFiles=(ffun.hbook "")) (jobName=$jname) (stdout=$outname) (join=yes) (maxCpuTime=100) (ftpThreads=6) (middleware="NorduGrid-0.1.6") EOXRSL ngsub -f ffun.xrsl sleep 10 done Job submission script ffun.sh
Oxana Smirnova8 Re-used JETSET/PYTHIA generation #!/bin/sh cat ffun.inp $ $1 EOF time./ffungen Executable run.shJob submission: ffun.sh
Oxana Smirnova9 Re-used JETSET/PYTHIA generation
Oxana Smirnova10 ATLAS DC1 Problem: –Executed binary, libraries etc do not belong to a user, but are a part of the ATLAS runtime environment –Input files are residing on [remote] storages However, as soon as the runtime environment is set up, the task becomes even easier on the Grid, comparing to a traditional method (see the Demo later) –Again, the most convenient method may be to produce xRSL and steering files on-fly
Oxana Smirnova11 ATLAS DC1 xRSL example &(executable=“\/$ATLAS_ROOT/bin/atlsim") (arguments="-w 0 -b dc simu.0000.nordugrid.kumac partition=0001 nskip=0 ntrig=2") (stdout=out.txt)(stderr=err.txt) (outputFiles= ("out.txt" "")("err.txt" "") ("dc simu.0001.nordugrid.zebra" "")("dc simu.0001.nordugrid.his" "")) (inputFiles= ("atlsim.makefile" " ("atlas.kumac" " ("atlsim.logon.kumac" " (" dc simu.0000.nordugrid.kumac " " dc simu.0000.nordugrid.kumac ") ("gen0016_1.root" ) (runTimeEnvironment="ATLAS-3.0.1") (jobname="dc simu.0001.nordugrid")
Oxana Smirnova12 ATLAS DC1
Oxana Smirnova13 Summary NorduGrid is ready to run “traditional” applications in a Grid environment There is still plenty of room for development: e.g., data management, production job management etc