Skip to content

Commit

Permalink
Merge pull request #1 from anehrkor/testMorphingInterface
Browse files Browse the repository at this point in the history
Added wrapper for AddWorkspace and ExtractPdfs
  • Loading branch information
ajgilbert committed Apr 25, 2016
2 parents 41ed2dc + 0cc593a commit 41ef237
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 30 deletions.
7 changes: 7 additions & 0 deletions CombineTools/input/job_prefixes/job_prefix_ic.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh
ulimit -s unlimited
cd %(CMSSW_BASE)s/src
export SCRAM_ARCH=%(SCRAM_ARCH)s
source /vols/cms/grid/setup.sh
eval `scramv1 runtime -sh`
cd %(PWD)s
18 changes: 18 additions & 0 deletions CombineTools/input/job_prefixes/job_prefix_naf.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/sh
ulimit -s unlimited
cd %(CMSSW_BASE)s/src
linux_ver=`lsb_release -s -r`
echo $linux_ver
if [[ $linux_ver < 6.0 ]];
then
eval "`/afs/desy.de/common/etc/local/ini/ini.pl cmssw_cvmfs`"
export SCRAM_ARCH=slc5_amd64_gcc472
export SCRAM_ARCH=%(SCRAM_ARCH)s
else
source /cvmfs/cms.cern.ch/cmsset_default.sh
export SCRAM_ARCH=slc6_amd64_gcc472
export SCRAM_ARCH=%(SCRAM_ARCH)s
fi

eval `scramv1 runtime -sh`
cd %(PWD)s
50 changes: 20 additions & 30 deletions CombineTools/python/combine/CombineToolBase.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,29 +17,6 @@
'PWD': os.environ['PWD']
})

JOB_NAF_PREFIX = """#!/bin/sh
ulimit -s unlimited
cd %(CMSSW_BASE)s/src
linux_ver=`lsb_release -s -r`
echo $linux_ver
if [[ $linux_ver < 6.0 ]];
then
eval "`/afs/desy.de/common/etc/local/ini/ini.pl cmssw_cvmfs`"
export SCRAM_ARCH=slc5_amd64_gcc472
export SCRAM_ARCH=%(SCRAM_ARCH)s
else
source /cvmfs/cms.cern.ch/cmsset_default.sh
export SCRAM_ARCH=slc6_amd64_gcc472
export SCRAM_ARCH=%(SCRAM_ARCH)s
fi
eval `scramv1 runtime -sh`
cd %(PWD)s
""" % ({
'CMSSW_BASE': os.environ['CMSSW_BASE'],
'SCRAM_ARCH': os.environ['SCRAM_ARCH'],
'PWD': os.environ['PWD']
})

CRAB_PREFIX = """
set -x
Expand Down Expand Up @@ -100,6 +77,7 @@ def __init__(self):
self.args = None
self.passthru = []
self.job_mode = 'interactive'
self.prefix_file = ''
self.parallel = 1
self.merge = 1
self.task_name = 'combine_task'
Expand All @@ -109,7 +87,9 @@ def __init__(self):

def attach_job_args(self, group):
group.add_argument('--job-mode', default=self.job_mode, choices=[
'interactive', 'script', 'lxbatch', 'NAF', 'crab3'], help='Task execution mode')
'interactive', 'script', 'lxbatch', 'SGE', 'crab3'], help='Task execution mode')
group.add_argument('--prefix-file', default=self.prefix_file,
help='Path to file containing job prefix')
group.add_argument('--task-name', default=self.task_name,
help='Task name, used for job script and log filenames for batch system tasks')
group.add_argument('--parallel', type=int, default=self.parallel,
Expand All @@ -136,6 +116,7 @@ def attach_args(self, group):
def set_args(self, known, unknown):
self.args = known
self.job_mode = self.args.job_mode
self.prefix_file = self.args.prefix_file
self.task_name = self.args.task_name
self.parallel = self.args.parallel
self.merge = self.args.merge
Expand Down Expand Up @@ -167,10 +148,7 @@ def create_job_script(self, commands, script_filename, do_log = False):
fname = script_filename
logname = script_filename.replace('.sh', '.log')
with open(fname, "w") as text_file:
if self.job_mode == 'NAF':
text_file.write(JOB_NAF_PREFIX)
else:
text_file.write(JOB_PREFIX)
text_file.write(JOB_PREFIX)
for i, command in enumerate(commands):
tee = 'tee' if i == 0 else 'tee -a'
log_part = '\n'
Expand Down Expand Up @@ -207,7 +185,19 @@ def flush_queue(self):
result = pool.map(
partial(run_command, self.dry_run), self.job_queue)
script_list = []
if self.job_mode in ['script', 'lxbatch', 'NAF']:
if self.job_mode in ['script', 'lxbatch', 'SGE']:
if self.prefix_file != '':
if self.prefix_file.endswith('.txt'):
job_prefix_file = open(self.prefix_file,'r')
else :
job_prefix_file = open(os.environ['CMSSW_BASE']+"/src/CombineHarvester/CombineTools/input/job_prefixes/job_prefix_"+self.prefix_file+".txt",'r')
global JOB_PREFIX
JOB_PREFIX=job_prefix_file.read() %({
'CMSSW_BASE': os.environ['CMSSW_BASE'],
'SCRAM_ARCH': os.environ['SCRAM_ARCH'],
'PWD': os.environ['PWD']
})
job_prefix_file.close()
for i, j in enumerate(range(0, len(self.job_queue), self.merge)):
script_name = 'job_%s_%i.sh' % (self.task_name, i)
# each job is given a slice from the list of combine commands of length 'merge'
Expand All @@ -221,7 +211,7 @@ def flush_queue(self):
full_script = os.path.abspath(script)
logname = full_script.replace('.sh', '_%J.log')
run_command(self.dry_run, 'bsub -o %s %s %s' % (logname, self.bopts, full_script))
if self.job_mode == 'NAF':
if self.job_mode == 'SGE':
for script in script_list:
full_script = os.path.abspath(script)
logname = full_script.replace('.sh', '_%J.log')
Expand Down
2 changes: 2 additions & 0 deletions CombineTools/src/CombineHarvester_Python.cc
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,8 @@ BOOST_PYTHON_MODULE(libCombineHarvesterCombineTools)
.def("InsertObservation", &CombineHarvester::InsertObservation)
.def("InsertProcess", &CombineHarvester::InsertProcess)
.def("InsertSystematic", &CombineHarvester::InsertSystematic)
.def("AddWorkspace", &CombineHarvester::AddWorkspace)
.def("ExtractPdfs", &CombineHarvester::ExtractPdfs)
;

py::class_<Object>("Object")
Expand Down

0 comments on commit 41ef237

Please sign in to comment.