ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/kiesel/TreeWriter/submitAll
Revision: 1.6
Committed: Mon May 6 13:42:24 2013 UTC (12 years ago) by kiesel
Branch: MAIN
Changes since 1.5: +16 -7 lines
Log Message:
a fetch script is written which should be executed after all jobs exited
successfully

File Contents

# User Rev Content
1 kiesel 1.1 #!/bin/bash
2     # This script submitts all jobs to naf, which are defined in dataset
3    
4 kiesel 1.2 datasets=(
5     # srm://dcache-se-cms.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/cms/tier2/store/user/jschulz/nTuples/QCD_250-500_V01/
6     # srm://dcache-se-cms.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/cms/tier2/store/user/jschulz/nTuples/QCD_500-1000_V01/
7     # srm://dcache-se-cms.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/cms/tier2/store/user/jschulz/nTuples/QCD_1000-inf_V01/
8 kiesel 1.6 # srm://dcache-se-cms.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/cms/tier2/store/user/jschulz/nTuples/GJets_V01/
9 kiesel 1.1 srm://dcache-se-cms.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/cms/tier2/store/user/jschulz/nTuples/WJets_V01/
10 kiesel 1.5 srm://dcache-se-cms.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/cms/tier2/store/user/jschulz/nTuples/TTJets_V01/
11 kiesel 1.2 # srm://dcache-se-cms.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/cms/tier2/store/user/jschulz/nTuples/GVJets_V01/
12     )
13 kiesel 1.1 # settings
14 kiesel 1.6 version="12"
15     outputFolder=/scratch/hh/dust/naf/cms/user/kiesel
16 kiesel 1.1 files_per_job=20
17    
18 kiesel 1.6 fetchScript=getOutput_${version}.sh
19     echo "#!/bin/bash -e" > $fetchScript
20     chmod +x $fetchScript
21    
22 kiesel 1.1 for dataset in "${datasets[@]}"; do
23    
24     # get folder name as best description for job
25     job_name=$(echo $dataset|rev|cut -d'/' -f2|rev)
26     # Since root can't handle -, it will be substituted to _
27     job_name=$(echo $job_name|sed 's/-/_/g')
28    
29 kiesel 1.2 files=( $(srmls -offset 0 -count 999 $dataset|grep root|awk '{print $2 }') )
30     # Ugly hack to get more than 1000 files (up to 2000).
31     files+=( $(srmls -offset 1000 -count 1999 $dataset|grep root|awk '{print $2 }') )
32 kiesel 1.1 number_of_jobs=$(expr ${#files[@]} / $files_per_job + 1 )
33    
34     # just for testing purpurse
35     #TMPDIR=/tmp
36    
37    
38     for (( job=1; job<=$number_of_jobs; job++ )); do
39    
40     jobPrefix=${job_name}.${version}__${job}
41    
42     files_to_submit=""
43     for (( i=$(expr $job \* $files_per_job - $files_per_job ); i<$(expr $job \* $files_per_job ); i++ )); do
44     if [[ "${files[$i]}" != "" ]]; then
45     files_to_submit=$files_to_submit"dcap://dcache-cms-dcap.desy.de"${files[$i]}" "
46     fi
47     done # files for one job
48 kiesel 1.6 outputFileName=$outputFolder/${jobPrefix}_tree.root
49 kiesel 1.1
50     # now that we have all information, get data
51     script=$jobPrefix.sh
52    
53     echo export SCRAM_ARCH="slc5_amd64_gcc462" > $script
54     echo export VO_CMS_SW_DIR=/cvmfs/cms.cern.ch >> $script
55     echo source $VO_CMS_SW_DIR/cmsset_default.sh >> $script
56     echo cd $HOME/CMSSW_5_3_8/src >> $script
57     echo cmsenv >> $script
58     echo cd $HOME/treeWriter >> $script
59 kiesel 1.6 echo make >> $script
60 kiesel 1.1
61     echo ./executable $outputFileName $files_to_submit >> $script
62     chmod +x $script
63 kiesel 1.6 qsub -b y -j y -l h_cpu=7:00:00 -l site=hh `pwd`/$jobPrefix.sh
64     # i: merge stdout and stderr
65     # o: log file
66 kiesel 1.1 done # all jobs
67 kiesel 1.6 echo "rm ${job_name}.${version}__*.sh" >> $fetchScript
68     echo "rm ~/${job_name}.${version}__*.sh.o*" >> $fetchScript
69     echo "hadd $outputFolder/${job_name}.${version}_tree.root $outputFolder/${job_name}.${version}__*.root" >> $fetchScript
70     echo "rm $outputFolder/${job_name}.${version}__*.root" >> $fetchScript
71 kiesel 1.1 done #dataset