ATLAS Offline Software
Loading...
Searching...
No Matches
Job.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
5
6//
7// includes
8//
9
10#include <EventLoop/Job.h>
11
12#include <memory>
17#include <EventLoop/Algorithm.h>
27#include <sstream>
28
29//
30// method implementations
31//
32
33namespace EL
34{
35 const std::string Job::optRemoveSubmitDir = "nc_EventLoop_RemoveSubmitDir";
36 const std::string Job::optSubmitDirMode = "nc_EventLoop_SubmitDirMode";
37 const std::string Job::optUniqueDateFormat = "nc_EventLoop_UniqueDateFormat";
38 const std::string Job::optAlgorithmTimer = "nc_EventLoop_AlgorithmTimer";
39 const std::string Job::optAlgorithmMemoryMonitor = "nc_EventLoop_AlgorithmMemoryMonitor";
40 const std::string Job::optFactoryPreload = "nc_EventLoop_FactoryPreload";
41 const std::string Job::optStreamAliases = "nc_EventLoop_StreamAliases";
42 const std::string Job::optMaxEvents = "nc_EventLoop_MaxEvents";
43 const std::string Job::optSkipEvents = "nc_EventLoop_SkipEvents";
44 const std::string Job::optWorkerConfigFile = "nc_EventLoop_WorkerConfigFile";
45 const std::string Job::optFilesPerWorker = "nc_EventLoop_FilesPerWorker";
46 const std::string Job::optEventsPerWorker = "nc_EventLoop_EventsPerWorker";
47 const std::string Job::optWorkerPostClosedOutputsExecutable = "nc_EventLoop_WorkerPostClosedOutputsExecutable";
48 const std::string Job::optSubmitFlags = "nc_EventLoop_SubmitFlags";
49 const std::string Job::optCondorConf = "nc_EventLoop_CondorConf";
50 const std::string Job::optCacheLearnEntries = "nc_EventLoop_CacheLearnEntries";
51 const std::string Job::optD3PDPerfStats = "nc_EventLoop_D3PDPerfStats";
52 const std::string Job::optD3PDReadStats = "nc_EventLoop_D3PDReadStats";
53 const std::string Job::optXAODPerfStats = "nc_EventLoop_XAODPerfStats";
54 const std::string Job::optXAODReadStats = "nc_EventLoop_XAODReadStats";
55 const std::string Job::optD3PDCacheMinEvent = "nc_EventLoop_D3PDCacheMinEvent";
56 const std::string Job::optD3PDCacheMinEventFraction = "nc_EventLoop_D3PDCacheMinEventFraction";
57 const std::string Job::optD3PDCacheMinByte = "nc_EventLoop_D3PDCacheMinByte";
58 const std::string Job::optD3PDCacheMinByteFraction = "nc_EventLoop_D3PDCacheMinByteFraction";
59 const std::string Job::optPerfTree = "nc_EventLoop_PerfTree";
60 const std::string Job::optXAODInput = "nc_EventLoop_XAODInput";
61 const std::string Job::optXaodAccessMode = "nc_EventLoop_XaodAccessMode";
62 const std::string Job::optOtherMetaDataTreeNamePattern = "nc_EventLoop_otherMetaDataTreeNamePattern";
63 const std::string Job::optXaodAccessMode_branch = "branch";
64 const std::string Job::optXaodAccessMode_class = "class";
65 const std::string Job::optXaodAccessMode_athena = "athena";
66 const std::string Job::optXAODSummaryReport = "nc_xaod_summary_report";
67 const std::string Job::optPrintPerFileStats = "nc_print_per_file_stats";
68 const std::string Job::optDisableMetrics = "nc_disable_metrics";
69 const std::string Job::optResetShell = "nc_reset_shell";
70 const std::string Job::optLocalNoUnsetup = "nc_local_no_unsetup";
71 const std::string Job::optNumParallelProcs = "nc_num_parallel_processes";
72 const std::string Job::optBackgroundProcess = "nc_background_process";
73 const std::string Job::optOutputSampleName = "nc_outputSampleName";
74 const std::string Job::optGridDestSE = "nc_destSE";
75 const std::string Job::optGridSite = "nc_site";
76 const std::string Job::optGridExcludedSite = "nc_excludedSite";
77 const std::string Job::optGridNGBPerJob = "nc_nGBPerJob";
78 const std::string Job::optGridMemory = "nc_memory";
79 const std::string Job::optGridMaxCpuCount = "nc_maxCpuCount";
80 const std::string Job::optGridNFiles = "nc_nFiles";
81 const std::string Job::optGridNFilesPerJob = "nc_nFilesPerJob";
82 const std::string Job::optGridNJobs = "nc_nJobs";
83 const std::string Job::optGridMaxFileSize = "nc_maxFileSize";
84 const std::string Job::optGridMaxNFilesPerJob = "nc_maxNFilesPerJob";
85 const std::string Job::optGridNEventsPerJob = "nc_nEventsPerJob";
86 const std::string Job::optGridExpress = "nc_express";
87 const std::string Job::optGridNoSubmit = "nc_noSubmit";
88 const std::string Job::optGridMergeOutput = "nc_mergeOutput";
89 const std::string Job::optGridAddNthFieldOfInDSToLFN = "nc_addNthFieldOfInDSToLFN";
90 const std::string Job::optGridWorkingGroup = "nc_workingGroup";
91 const std::string Job::optGridPrunShipAdditionalFilesOrDirs = "nc_prunShipAdditionalFilesOrDirs";
92 const std::string Job::optGridPrunNRetrySubmitToGrid = "nc_prunNRetrySubmitToGrid";
93 const std::string Job::optGridShowCmd = "nc_showCmd";
94 const std::string Job::optGridCpuTimePerEvent = "nc_cpuTimePerEvent";
95 const std::string Job::optGridMaxWalltime = "nc_maxWalltime";
96 const std::string Job::optGridAvoidVP = "nc_avoidVP";
97 const std::string Job::optGridReporting = "nc_gridReporting";
98 const std::string Job::optBatchSharedFileSystem = "nc_sharedFileSystem";
99 const std::string Job::optBatchSlurmExtraConfigLines = "nc_SlurmExtraConfig";
100 const std::string Job::optBatchSlurmWrapperExec = "nc_SlurmWrapperExec";
101 const std::string Job::optBatchSetupCommand = "nc_BatchSetupCommand";
102 const std::string Job::optDockerImage = "nc_DockerImage";
103 const std::string Job::optDockerOptions = "nc_DockerOptions";
104 const std::string Job::optBatchConfigFile = "nc_BatchConfigFile";
105 const std::string Job::optBatchSetupFile = "nc_BatchSetupFile";
106 const std::string Job::optTmpDir = "nc_tmpDir";
107 const std::string Job::optRootVer = "nc_rootVer";
108 const std::string Job::optCmtConfig = "nc_cmtConfig";
109 const std::string Job::optGridDisableAutoRetry = "nc_disableAutoRetry";
110 const std::string Job::optOfficial = "nc_official";
111 const std::string Job::optVoms = "nc_voms";
112
116 const std::string Job::optCacheSize = "nc_cache_size";
117
118 const std::string Job::optRetries = SH::MetaNames::openRetries();
120
121 const std::string Job::optUserFiles = "nc_EventLoop_UserFiles";
122
124 "nc_resMemPerEventIncrease";
126 "nc_virtMemPerEventIncrease";
127 const std::string Job::optMemResidentIncreaseLimit = "nc_resMemAbsIncrease";
128 const std::string Job::optMemVirtualIncreaseLimit = "nc_virtMemAbsIncrease";
129 const std::string Job::optMemFailOnLeak = "nc_failOnMemLeak";
130
131
132 const std::string Job::histogramStreamName = "HISTOGRAM";
133
134
135 void swap (Job& a, Job& b)
136 {
137 swap (a.m_sampleHandler, b.m_sampleHandler);
138 a.m_jobConfig.swap (b.m_jobConfig);
139 swap (a.m_output, b.m_output);
140 }
141
142
143
144 void Job ::
145 testInvariant () const
146 {
147 RCU_INVARIANT (this);
148 }
149
150
151
152 Job ::
153 Job ()
154 {
156
157 RCU_NEW_INVARIANT (this);
158 }
159
160
161
162 Job ::
163 Job (const Job& that)
165 that.m_sampleHandler)),
166 m_output (that.m_output),
167 m_options (that.m_options),
169 {
170 RCU_NEW_INVARIANT (this);
171 }
172
173
174
175 Job ::
176 ~Job ()
177 {
179 }
180
181
182
183 Job& Job ::
184 operator = (const Job& that)
185 {
186 // no invariant used
187 Job tmp (that);
188 swap (*this, tmp);
189 return *this;
190 }
191
192
193
194 const SH::SampleHandler& Job ::
195 sampleHandler () const
196 {
197 RCU_READ_INVARIANT (this);
198 return m_sampleHandler;
199 }
200
201
202
203 void Job ::
204 sampleHandler (const SH::SampleHandler& val_sampleHandler)
205 {
207 m_sampleHandler = val_sampleHandler;
208 }
209
210
211
212 void Job ::
213 algsAdd (std::unique_ptr<IAlgorithmWrapper> val_algorithm)
214 {
215 using namespace msgEventLoop;
216
218 RCU_REQUIRE_SOFT (val_algorithm != nullptr);
219
220 ANA_CHECK_THROW (m_jobConfig.addAlgorithm (std::move (val_algorithm)));
221 }
222
223
224
225 void Job ::
226 algsAdd (std::unique_ptr<Algorithm> val_algorithm)
227 {
228 using namespace msgEventLoop;
229
231 RCU_REQUIRE_SOFT (val_algorithm != nullptr);
232
233
234 std::string myname = val_algorithm->GetName();
235 if (myname.empty() || algsHas (myname))
236 {
237 if (myname.empty())
238 myname = "UnnamedAlgorithm";
239 bool unique = false;
240 for (unsigned iter = 1; !unique; ++ iter)
241 {
242 std::ostringstream str;
243 str << myname << iter;
244 if (!algsHas (str.str()))
245 {
246 myname = str.str();
247 unique = true;
248 }
249 }
250 if (strlen (val_algorithm->GetName()) > 0)
251 ANA_MSG_WARNING ("renaming algorithm " << val_algorithm->GetName() << " to " << myname << " to make the name unique");
252 val_algorithm->SetName (myname.c_str());
253 if (val_algorithm->GetName() != myname)
254 {
255 std::ostringstream message;
256 message << "failed to rename algorithm " << val_algorithm->GetName() << " to " << myname;
257 RCU_THROW_MSG (message.str());
258 }
259 }
260
261 val_algorithm->sysSetupJob (*this);
262 algsAdd (std::make_unique<AlgorithmWrapper> (std::move (val_algorithm)));
263 }
264
265
266
267 void Job ::
268 algsAdd (Algorithm *alg_swallow)
269 {
270 algsAdd (std::unique_ptr<Algorithm> (alg_swallow));
271 }
272
273
274
275 void Job ::
276 algsAdd (const AnaAlgorithmConfig& config)
277 {
278 // no invariant used
279 if (config.useXAODs())
280 useXAOD ();
281 algsAdd (std::make_unique<AnaAlgorithmWrapper> (config));
282 }
283
284
285
286 void Job ::
287 algsAdd (const AnaReentrantAlgorithmConfig& config)
288 {
289 // no invariant used
290 algsAdd (std::make_unique<AnaReentrantAlgorithmWrapper> (config));
291 }
292
293
294
295 void Job ::
296 algsAdd (const asg::AsgServiceConfig& config)
297 {
298 // no invariant used
299 algsAdd (std::make_unique<AsgServiceWrapper> (config));
300 }
301
302
303
304 void Job ::
305 algsAdd (const EL::PythonConfigBase& config)
306 {
307 // no invariant used
308 useXAOD ();
309 if (config.componentType() == "AnaAlgorithm")
310 algsAdd (std::make_unique<AnaAlgorithmWrapper> (AnaAlgorithmConfig (config)));
311 else if (config.componentType() == "AnaReentrantAlgorithm")
312 algsAdd (std::make_unique<AnaReentrantAlgorithmWrapper> (AnaReentrantAlgorithmConfig (config)));
313 else if (config.componentType() == "AsgTool")
314 algsAdd (std::make_unique<AsgToolWrapper> (asg::AsgToolConfig (config)));
315 else if (config.componentType() == "AsgService")
316 algsAdd (std::make_unique<AsgServiceWrapper> (asg::AsgServiceConfig (config)));
317 else
318 RCU_THROW_MSG ("unknown component type: \"" + config.componentType() + "\"");
319 }
320
321
322
323 void Job ::
324 algsAddClone (const Algorithm& alg)
325 {
326 // no invariant used
327 algsAdd (dynamic_cast<Algorithm*>(alg.Clone()));
328 }
329
330
331
332 bool Job ::
333 algsHas (const std::string& name) const
334 {
335 RCU_READ_INVARIANT (this);
336 return m_jobConfig.getAlgorithm (name) != nullptr;
337 }
338
339
340
342 outputBegin ()
343 {
344 RCU_READ_INVARIANT (this);
345 return ( m_output.size() ? &m_output[0] : nullptr );
346 }
347
348
349
351 outputBegin () const
352 {
353 RCU_READ_INVARIANT (this);
354 return ( m_output.size() ? &m_output[0] : nullptr );
355 }
356
357
358
360 outputEnd ()
361 {
362 RCU_READ_INVARIANT (this);
363 return ( m_output.size() ? &m_output[m_output.size()] : nullptr );
364 }
365
366
367
369 outputEnd () const
370 {
371 RCU_READ_INVARIANT (this);
372 return ( m_output.size() ? &m_output[m_output.size()] : nullptr );
373 }
374
375
376
377 void Job ::
378 outputAdd (const OutputStream& val_output)
379 {
381 RCU_REQUIRE2_SOFT (!outputHas (val_output.label()), ("trying to create two output streams with the label " + val_output.label() + "\nplease make sure that every output stream has a unique label").c_str());
382 m_output.push_back (val_output);
383 }
384
385
386
387 bool Job ::
388 outputHas (const std::string& name) const
389 {
391 for (outputIter iter = outputBegin(),
392 end = outputEnd(); iter != end; ++ iter)
393 {
394 if (iter->label() == name)
395 return true;
396 }
397 return false;
398 }
399
400
401
402 void Job ::
403 useXAOD ()
404 {
406
407 options()->setBool (Job::optXAODInput, true);
408 }
409
410
411
413 options ()
414 {
415 RCU_READ_INVARIANT (this);
416 return &m_options;
417 }
418
419
420
421 const SH::MetaObject *Job ::
422 options () const
423 {
424 RCU_READ_INVARIANT (this);
425 return &m_options;
426 }
427
428
429
430 const JobConfig& Job ::
431 jobConfig () const noexcept
432 {
433 RCU_READ_INVARIANT (this);
434 return m_jobConfig;
435 }
436}
#define RCU_INVARIANT(x)
Definition Assert.h:201
#define RCU_DESTROY_INVARIANT(x)
Definition Assert.h:235
#define RCU_CHANGE_INVARIANT(x)
Definition Assert.h:231
#define RCU_REQUIRE2_SOFT(x, y)
Definition Assert.h:155
#define RCU_NEW_INVARIANT(x)
Definition Assert.h:233
#define RCU_REQUIRE_SOFT(x)
Definition Assert.h:153
#define RCU_READ_INVARIANT(x)
Definition Assert.h:229
#define ANA_MSG_WARNING(xmsg)
Macro printing warning messages.
#define ANA_CHECK_THROW(EXP)
check whether the given expression was successful, throwing an exception on failure
static Double_t a
#define RCU_THROW_MSG(message)
Definition PrintMsg.h:58
an object that can create a AnaAlgorithm
an object that can create a AnaReentrantAlgorithm
the job configuration that is independent of driver and dataset
Definition JobConfig.h:39
static const std::string optPrintPerFileStats
description: the option to turn on printing of i/o statistics at the end of each file rationale: whil...
Definition Job.h:425
static const std::string optGridShowCmd
Definition Job.h:486
static const std::string optSubmitDirMode
the submit-dir mode (allowed values: "no-clobber", "overwrite", "unique", "unique-link")
Definition Job.h:195
static const std::string optBatchSharedFileSystem
description: batch-specific options rationale: these options are for configuring batch drivers
Definition Job.h:529
static const std::string optEventsPerWorker
description: the name of the option for selecting the number of events per batch job.
Definition Job.h:274
EL::JobConfig m_jobConfig
the JobConfig object we use
Definition Job.h:638
SH::MetaObject * options()
description: the list of options to the job guarantee: no-fail postcondition: result !...
Definition Job.cxx:413
static const std::string optMemFailOnLeak
Failure behaviour of the code when a "significant memory leak" is found.
Definition Job.h:607
static const std::string optMaxEvents
description: the name of the option used for setting the maximum number of events to process per samp...
Definition Job.h:225
static const std::string optGridPrunNRetrySubmitToGrid
Will retry N-times submission of job to the grid in case of failure to submit job Sometimes submittin...
Definition Job.h:500
static const std::string optGridReporting
whether to use grid reporting even when not running on the grid
Definition Job.h:510
static const std::string optCmtConfig
Definition Job.h:504
static const std::string optD3PDReadStats
description: the name of the D3PDPerfStats object produced as I gather it, as well as the name of the...
Definition Job.h:346
static const std::string optGridExcludedSite
Definition Job.h:471
static const std::string optDockerOptions
any extra options we may want to pass to docker
Definition Job.h:544
static const std::string optGridMergeOutput
Definition Job.h:483
static const std::string optAlgorithmTimer
a boolean flag for whether to add a timer for the algorithms
Definition Job.h:205
SH::MetaObject m_options
Definition Job.h:634
static const std::string optWorkerConfigFile
a python configuration file that will be executed on the worker
Definition Job.h:246
static const std::string optBatchSetupCommand
This overrides the asetup command if you need to use a custom one.
Definition Job.h:537
static const std::string optGridExpress
Definition Job.h:481
void algsAdd(std::unique_ptr< IAlgorithmWrapper > val_algorithm)
description: the list of algorithms used guarantee: no-fail / strong failures: out of memory II invar...
Definition Job.cxx:213
void useXAOD()
effects: register this job to use XAODs guarantee: strong failures: out of memory II failures: TEvent...
Definition Job.cxx:403
static const std::string optMemResidentIncreaseLimit
The minimal resident memory increase necessary to trigger an error.
Definition Job.h:585
static const std::string optXAODPerfStats
description: the name of the option for turning on XAODPerfStats.
Definition Job.h:356
static const std::string optD3PDCacheMinEvent
description: these options configure the D3PDReader TTreeCache settings.
Definition Job.h:376
const OutputStream * outputIter
Definition Job.h:143
static const std::string optXAODReadStats
description: the name of the XAODPerfStats object produced as I gather it, as well as the name of the...
Definition Job.h:365
static const std::string optCondorConf
description: the name of the option for supplying extra parameters for condor systems
Definition Job.h:302
static const std::string optXaodAccessMode_athena
Definition Job.h:403
static const std::string optXAODSummaryReport
the option to turn on/off the xAOD summary reporting at the end of the job
Definition Job.h:415
static const std::string optGridMaxWalltime
Definition Job.h:488
static const std::string optBatchConfigFile
the job submission configuration file (used by some drivers that need more complex configuration)
Definition Job.h:548
static const std::string optGridNEventsPerJob
Definition Job.h:480
static const std::string optXaodAccessMode
description: the option to select the access mode for xAODs.
Definition Job.h:400
static const std::string optRetriesWait
Definition Job.h:516
static const std::string optCacheLearnEntries
description: this option allows to configure the number of tree entries used for learning cache behav...
Definition Job.h:327
OutputStream * outputMIter
description: the list of output datasets used guarantee: no-fail / strong failures(3): out of memory ...
Definition Job.h:142
static const std::string optCacheSize
description: this option allows to configure the TTreeCache size for this job.
Definition Job.h:312
SH::SampleHandler m_sampleHandler
description: members directly corresponding to accessors
Definition Job.h:630
static const std::string optGridCpuTimePerEvent
Definition Job.h:487
static const std::string optSubmitFlags
description: the name of the option for supplying extra submit parameters to batch systems rationale:...
Definition Job.h:296
static const std::string optAlgorithmMemoryMonitor
a boolean flag for whether to add a memory monitor for the algorithms
Definition Job.h:210
static const std::string optBatchSlurmWrapperExec
Append a command before the main executable is called This is useful is you want to execute the comma...
Definition Job.h:535
static const std::string optFilesPerWorker
description: the name of the option for selecting the number of files per batch job.
Definition Job.h:259
static const std::string optXAODInput
the option to select whether our input is xAODs
Definition Job.h:393
static const std::string optD3PDPerfStats
description: the name of the option for turning on D3PDPerfStats.
Definition Job.h:337
std::vector< EL::OutputStream > m_output
Definition Job.h:632
static const std::string optMemResidentPerEventIncreaseLimit
The minimal per-event resident memory increase for triggering an error.
Definition Job.h:567
static const std::string optNumParallelProcs
the option to specify the number of parallel jobs in LocalDriver (0 = number of hardware cores) (defa...
Definition Job.h:452
static const std::string optResetShell
description: the option to reset the shell on the worker nodes rationale: this is currently only used...
Definition Job.h:437
bool algsHas(const std::string &name) const
returns: whether we have the algorithm with the given name guarantee: no-fail
Definition Job.cxx:333
static const std::string optGridWorkingGroup
Definition Job.h:485
outputMIter outputEnd()
Definition Job.cxx:360
static const std::string optD3PDCacheMinByteFraction
Definition Job.h:379
static const std::string optDockerImage
this is the name of the docker image, when using docker with a supported batch driver
Definition Job.h:541
static const std::string optGridPrunShipAdditionalFilesOrDirs
Enables to ship additional files to the tarbal sent to the grid Should be a list of comma separated p...
Definition Job.h:494
static const std::string optMemVirtualIncreaseLimit
The minimal virtual memory increase necessary to trigger an error.
Definition Job.h:593
static const std::string optGridSite
Definition Job.h:470
static const std::string optBatchSlurmExtraConfigLines
The content of this string will be executed in the job script on the worker node before the main exec...
Definition Job.h:532
static const std::string optD3PDCacheMinEventFraction
Definition Job.h:377
static const std::string optVoms
Definition Job.h:507
static const std::string optGridAvoidVP
Definition Job.h:489
static const std::string optMemVirtualPerEventIncreaseLimit
The minimal per-event virtual memory increase for triggering an error.
Definition Job.h:577
static const std::string optD3PDCacheMinByte
Definition Job.h:378
static const std::string optGridNFilesPerJob
Definition Job.h:476
static const std::string optWorkerPostClosedOutputsExecutable
Optionnal executable to be provided by the user that will be called, by the worker,...
Definition Job.h:286
static const std::string optSkipEvents
description: the name of the option used for skipping a certain number of events in the beginning rat...
Definition Job.h:233
static const std::string optTmpDir
Definition Job.h:502
Job()
effects: standard default constructor guarantee: strong failures: low level errors I
Definition Job.cxx:153
static const std::string optRetries
these options are defined in SH::MetaNames
Definition Job.h:515
static const std::string optGridMemory
Definition Job.h:473
static const std::string optUniqueDateFormat
the date-format to use when generating unique submission directory names
Definition Job.h:200
static const std::string optStreamAliases
an option for stream aliases
Definition Job.h:217
static const std::string optGridNJobs
Definition Job.h:477
static const std::string optGridDisableAutoRetry
Definition Job.h:505
static const std::string optGridNoSubmit
Definition Job.h:482
static const std::string optGridMaxFileSize
Definition Job.h:478
static const std::string optGridAddNthFieldOfInDSToLFN
Definition Job.h:484
static const std::string optBackgroundProcess
the option to do processing in a background process in PROOF
Definition Job.h:457
static const std::string optGridNFiles
Definition Job.h:475
static const std::string optDisableMetrics
description: the option to turn off collection of performance data
Definition Job.h:430
static const std::string optOfficial
Definition Job.h:506
static const std::string optGridMaxNFilesPerJob
Definition Job.h:479
static const std::string optLocalNoUnsetup
the option not to unsetup the environment in LocalDriver
Definition Job.h:442
static const std::string optFactoryPreload
a boolean flag for whether to perform a component factory preload
Definition Job.h:214
static const std::string optOtherMetaDataTreeNamePattern
Pattern for other MetaData tree name in input xAODs Can be useful for augmented file reading or exclu...
Definition Job.h:409
static const std::string optXaodAccessMode_branch
Definition Job.h:401
static const std::string optXaodAccessMode_class
Definition Job.h:402
outputMIter outputBegin()
Definition Job.cxx:342
static const std::string histogramStreamName
the name of the histogram output stream
Definition Job.h:618
static const std::string optOutputSampleName
the output sample name
Definition Job.h:462
static const std::string optUserFiles
a list of files that need to be available within the worker job
Definition Job.h:522
static const std::string optGridNGBPerJob
Definition Job.h:472
static const std::string optBatchSetupFile
the job submission setup file.
Definition Job.h:553
static const std::string optPerfTree
description: the option to turn on the performance tree in PROOF.
Definition Job.h:388
bool outputHas(const std::string &name) const
returns: whether we have an output with the given name guarantee: no-fail
Definition Job.cxx:388
static const std::string optGridMaxCpuCount
Definition Job.h:474
static const std::string optRemoveSubmitDir
description: the name of the option for overwriting the submission directory.
Definition Job.h:189
static const std::string optGridDestSE
description: grid-specific options rationale: these are named so as to correspond to prun equivalents...
Definition Job.h:469
static const std::string optRootVer
Definition Job.h:503
const std::string & label() const
description: the label for this output dataset.
the base class for the python configuration of any asg::AsgComponent
A class that manages meta-data to be associated with an object.
Definition MetaObject.h:56
A class that manages a list of Sample objects.
an object that can create a AsgService
an object that can create a AsgTool
This module defines the arguments passed from the BATCH driver to the BATCH worker.
void swap(Job &a, Job &b)
effects: standard swap guarantee: no-fail
Definition Job.cxx:135
void check_root_version()
effects: check whether we are using a consistent root version guarantee: strong failures: version mis...
static const std::string & openRetries()
the number of retries for opening a file
Definition MetaNames.cxx:23
static const std::string & openRetriesWait()
the amount of time (in seconds) to wait when doing retries
Definition MetaNames.cxx:40