ATLAS Offline Software
Classes | Enumerations | Functions
EL::Detail Namespace Reference

Classes

struct  AlgorithmData
 all the data a worker tracks for an individual algorithm More...
 
class  AlgorithmMemoryModule
 a Module wrapping each algorithm with its own memory monitor More...
 
class  AlgorithmStateModule
 a Module managing the state of the algorithms on the workers More...
 
class  AlgorithmTimerModule
 a Module wrapping each algorithm with its own timer More...
 
class  BaseManager
 a Manager to handle all of the basic tasks More...
 
class  BatchInputModule
 the IInputModule implementation for the batch driver More...
 
class  DirectInputModule
 the IInputModule implementation for the direct driver More...
 
class  DriverManager
 a Manager that passes callbacks through to the Driver More...
 
class  EventCountModule
 a Module tracking how many events get processed by each algorithm More...
 
class  FactoryPreloadModule
 a Module preloading all the registered factories More...
 
class  FileExecutedModule
 a Module recording when FileExecuted was called More...
 
class  GridReportingModule
 a Module that handles the reporting from the job on the grid More...
 
class  IInputModuleActions
 the actions that Module::processInputs can perform More...
 
class  LeakCheckModule
 a Module implementing a simple leak checker More...
 
class  Manager
 an interface for classes that handle job management for the Driver More...
 
struct  ManagerData
 an internal data structure for passing data between different manager objects anbd step More...
 
class  MemoryMonitorModule
 a Module monitoring memory usage at various points during the job More...
 
class  Module
 the base class for EventLoop instrumentation module More...
 
struct  ModuleData
 the data the EventLoop core classes are sharing with the Module implementation More...
 
class  OutputStreamData
 all data needed to manage a given output stream More...
 
class  PostClosedOutputsModule
 Module enabling to perform checks/actions on outputs once files are all closed. More...
 
class  RetrieveManager
 
class  StopwatchModule
 a Module wrapping the TStopwatch class More...
 
class  SubmitDirManager
 a Manager to handle the submission directory itself More...
 
class  SubmitManager
 
class  TEventModule
 
class  TreeCacheModule
 a Module for setting the TTreeCache parameters on the input More...
 
class  WorkerConfigModule
 a Module implementation for running user configuration on the worker node More...
 

Enumerations

enum  ManagerOrder { ManagerOrder::BASE, ManagerOrder::SUBMIT_DIR, ManagerOrder::OPERATION, ManagerOrder::DRIVER }
 an enum to establish an order in which to apply managers More...
 
enum  ManagerStep {
  ManagerStep::initial, ManagerStep::initialSubmit, ManagerStep::updateSubmitDir, ManagerStep::fillOptions,
  ManagerStep::extractOptions, ManagerStep::createSubmitDir, ManagerStep::updateOutputLocation, ManagerStep::addSystemAlgs,
  ManagerStep::prepareSubmitDir, ManagerStep::batchCreateDirectories, ManagerStep::batchCreateJob, ManagerStep::batchScriptVar,
  ManagerStep::batchMakeScript, ManagerStep::batchMakeIndices, ManagerStep::submitJob, ManagerStep::directSaveOutput,
  ManagerStep::postSubmit, ManagerStep::finalSubmit, ManagerStep::initialResubmit, ManagerStep::readConfigResubmit,
  ManagerStep::batchJobStatusResubmit, ManagerStep::batchPreResubmit, ManagerStep::doResubmit, ManagerStep::finalResubmit,
  ManagerStep::initialRetrieve, ManagerStep::readConfigRetrieve, ManagerStep::batchJobStatusRetrieve, ManagerStep::doRetrieve,
  ManagerStep::finalRetrieve, ManagerStep::final
}
 the individual steps of preparing a job for submission More...
 
enum  SubmitDirMode { SubmitDirMode::NO_CLOBBER, SubmitDirMode::OVERWRITE, SubmitDirMode::UNIQUE, SubmitDirMode::UNIQUE_LINK }
 the mode for creating the submission directory More...
 

Functions

void report_exception (std::exception_ptr eptr)
 print out the currently evaluated exception More...
 

Enumeration Type Documentation

◆ ManagerOrder

an enum to establish an order in which to apply managers

While there should be very little inter-dependency between managers, it can matter which order they get applied in, e.g. the basic manager may set the default value of some property only to be overridden by a more specialized manager downstream.

Enumerator
BASE 

the most basic operations, common for all tasks

SUBMIT_DIR 

the basic operations for the submission directory

OPERATION 

the base-operation performed (e.g. submit, retrieve)

DRIVER 

the driver itself

Definition at line 26 of file ManagerOrder.h.

27  {
29  BASE,
30 
32  SUBMIT_DIR,
33 
35  OPERATION,
36 
38  DRIVER
39  };

◆ ManagerStep

the individual steps of preparing a job for submission

Essentially the Driver and Manager objects are giant state machines, and this denotes the current overall state (with extra information in ManagerData).

It should be noted that not every step will be used on every operation (e.g. submit or retrieve), but instead there is a separate sequence of steps for each of them.

The alternative to this enum would be to have a separate callback in the Manager class for each step, which would have the advantage that there isn't one function with a very large switch statement, but this approach has other advantages:

  • This makes it clear and obvious in which order steps get executed.
  • The effort for adding/removing individual steps is a lot lower with an enum than with virtual functions.
  • It is very easy to bind the same action to multiple steps, which comes into play if that action needs to be performed for multiple operations.
Enumerator
initial 

this is just the initial step we do, nothing really happens here

initialSubmit 

the initial submit step

updateSubmitDir 

update the submitDir variable to be an absolute path

fillOptions 

in this step we fill the options structure, combining the different locations from which we can pull configuration options.

extractOptions 

extract any options into ManagerData for which it is appropriate

createSubmitDir 

create the submission directory

updateOutputLocation 

in this step we update the output location of streams that don't yet have one defined

addSystemAlgs 

add any system algorithms to the job that may need to get added

prepareSubmitDir 

prepare files in our submission directory

batchCreateDirectories 

create the directories needed in the batch directory

batchCreateJob 

create the batch-driver job object

batchScriptVar 

create the variables needed for the batch-run script

batchMakeScript 

create the batch-run script

batchMakeIndices 

create the list of batch job indices

submitJob 

do the actual job submission

directSaveOutput 

save the output in the direct driver

postSubmit 

do whatever needs to be done after the submission is done

finalSubmit 

the final submit step

initialResubmit 

the initial resubmit step

readConfigResubmit 

read the configuration for resubmit

batchJobStatusResubmit 

read the job status in batch driver

batchPreResubmit 

do everything the batch driver needs to do before the resubmit

doResubmit 

call the actual doResubmit method

finalResubmit 

the final resubmit step

initialRetrieve 

the initial retrieve step

readConfigRetrieve 

read the configuration for retrieve

batchJobStatusRetrieve 

read the job status in batch driver

doRetrieve 

call the actual doRetrieve method

finalRetrieve 

the final retrieve step

final 

Definition at line 41 of file ManagerStep.h.

42  {
45  initial,
46 
49 
52 
57 
61 
64 
68 
72 
75 
78 
81 
84 
87 
90 
92  submitJob,
93 
96 
98  postSubmit,
99 
101  finalSubmit,
102 
105 
108 
111 
114 
116  doResubmit,
117 
120 
123 
126 
129 
131  doRetrieve,
132 
135 
136  final
137  };

◆ SubmitDirMode

the mode for creating the submission directory

Enumerator
NO_CLOBBER 

create the directory as is, raise an error if it already exists

OVERWRITE 

create the directory as is, removing existing directories if needed

UNIQUE 

append a unique suffix to the directory name

UNIQUE_LINK 

append a unique suffix to the directory name and place a symbolic link in place of the originally requested directory

Definition at line 20 of file SubmitDirMode.h.

21  {
24  NO_CLOBBER,
25 
28  OVERWRITE,
29 
31  UNIQUE,
32 
36  };

Function Documentation

◆ report_exception()

void EL::Detail::report_exception ( std::exception_ptr  eptr)

print out the currently evaluated exception

Definition at line 27 of file PhysicsAnalysis/D3PDTools/EventLoop/Root/MessageCheck.cxx.

28  {
29  using namespace msgEventLoop;
30  try
31  {
32  if (eptr) {
33  std::rethrow_exception(eptr);
34  }
35  } catch (std::exception& e)
36  {
37  ANA_MSG_ERROR ("caught exception: " << e.what());
38  } catch (std::string& str)
39  {
40  ANA_MSG_ERROR ("caught exception string: " << str);
41  } catch (const char *str)
42  {
43  ANA_MSG_ERROR ("caught exception string: " << str);
44  } catch (...)
45  {
46  ANA_MSG_ERROR ("caught unknown exception");
47  }
48  }
EL::Detail::ManagerOrder::OPERATION
@ OPERATION
the base-operation performed (e.g. submit, retrieve)
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
EL::Detail::ManagerStep::fillOptions
@ fillOptions
in this step we fill the options structure, combining the different locations from which we can pull ...
EL::Detail::ManagerStep::batchScriptVar
@ batchScriptVar
create the variables needed for the batch-run script
EL::Detail::ManagerStep::batchJobStatusResubmit
@ batchJobStatusResubmit
read the job status in batch driver
EL::Detail::SubmitDirMode::UNIQUE_LINK
@ UNIQUE_LINK
append a unique suffix to the directory name and place a symbolic link in place of the originally req...
EL::Detail::ManagerStep::readConfigRetrieve
@ readConfigRetrieve
read the configuration for retrieve
EL::Detail::ManagerStep::postSubmit
@ postSubmit
do whatever needs to be done after the submission is done
ANA_MSG_ERROR
#define ANA_MSG_ERROR(xmsg)
Macro printing error messages.
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:294
EL::Detail::ManagerStep::readConfigResubmit
@ readConfigResubmit
read the configuration for resubmit
EL::Detail::ManagerStep::addSystemAlgs
@ addSystemAlgs
add any system algorithms to the job that may need to get added
EL::Detail::ManagerStep::finalResubmit
@ finalResubmit
the final resubmit step
EL::Detail::ManagerStep::initialSubmit
@ initialSubmit
the initial submit step
EL::Detail::ManagerOrder::SUBMIT_DIR
@ SUBMIT_DIR
the basic operations for the submission directory
EL::Detail::ManagerStep::batchCreateJob
@ batchCreateJob
create the batch-driver job object
EL::Detail::ManagerStep::doResubmit
@ doResubmit
call the actual doResubmit method
EL::Detail::ManagerStep::createSubmitDir
@ createSubmitDir
create the submission directory
EL::Detail::ManagerStep::extractOptions
@ extractOptions
extract any options into ManagerData for which it is appropriate
EL::Detail::ManagerStep::updateOutputLocation
@ updateOutputLocation
in this step we update the output location of streams that don't yet have one defined
EL::Detail::ManagerStep::batchCreateDirectories
@ batchCreateDirectories
create the directories needed in the batch directory
calibdata.exception
exception
Definition: calibdata.py:496
EL::Detail::ManagerStep::initial
@ initial
this is just the initial step we do, nothing really happens here
EL::Detail::ManagerStep::doRetrieve
@ doRetrieve
call the actual doRetrieve method
EL::Detail::SubmitDirMode::UNIQUE
@ UNIQUE
append a unique suffix to the directory name
EL::Detail::SubmitDirMode::OVERWRITE
@ OVERWRITE
create the directory as is, removing existing directories if needed
EL::Detail::ManagerStep::prepareSubmitDir
@ prepareSubmitDir
prepare files in our submission directory
EL::Detail::ManagerStep::updateSubmitDir
@ updateSubmitDir
update the submitDir variable to be an absolute path
EL::Detail::ManagerOrder::DRIVER
@ DRIVER
the driver itself
EL::Detail::ManagerStep::finalRetrieve
@ finalRetrieve
the final retrieve step
EL::Detail::ManagerStep::initialRetrieve
@ initialRetrieve
the initial retrieve step
EL::Detail::ManagerStep::batchPreResubmit
@ batchPreResubmit
do everything the batch driver needs to do before the resubmit
EL::Detail::ManagerOrder::BASE
@ BASE
the most basic operations, common for all tasks
EL::Detail::SubmitDirMode::NO_CLOBBER
@ NO_CLOBBER
create the directory as is, raise an error if it already exists
EL::Detail::ManagerStep::batchMakeScript
@ batchMakeScript
create the batch-run script
EL::Detail::ManagerStep::finalSubmit
@ finalSubmit
the final submit step
EL::Detail::ManagerStep::batchJobStatusRetrieve
@ batchJobStatusRetrieve
read the job status in batch driver
str
Definition: BTagTrackIpAccessor.cxx:11
EL::Detail::ManagerStep::submitJob
@ submitJob
do the actual job submission
EL::Detail::ManagerStep::initialResubmit
@ initialResubmit
the initial resubmit step
EL::Detail::ManagerStep::directSaveOutput
@ directSaveOutput
save the output in the direct driver
EL::Detail::ManagerStep::batchMakeIndices
@ batchMakeIndices
create the list of batch job indices