ATLAS Offline Software
|
an internal data structure for passing data between different manager objects anbd step More...
#include <ManagerData.h>
Public Member Functions | |
ManagerData () noexcept | |
standard constructor More... | |
~ManagerData () noexcept | |
standard destructor More... | |
void | addManager (std::unique_ptr< Manager > manager) |
add the given manager More... | |
::StatusCode | run () |
run all the managers from start to finish More... | |
Public Attributes | |
const Driver * | driver {nullptr} |
the driver we are working on/with More... | |
std::string | submitDir |
the path to the submission directory More... | |
SubmitDirMode | submitDirMode {SubmitDirMode::NO_CLOBBER} |
the mode with which we handle the submission directory More... | |
bool | resubmit {false} |
whether we are merely resubmitting this job More... | |
std::string | resubmitOption |
if we are resubmitting, the resubmit option chosen More... | |
SH::MetaObject | options |
the options with which we submit this job More... | |
Job * | job {nullptr} |
the user job we are submitting More... | |
bool | submitted {false} |
whether we successfully submitted the job in this process More... | |
bool | retrieved {false} |
whether we successfully retrieved the job in this process More... | |
bool | completed {false} |
whether the job completed More... | |
std::unique_ptr< BatchJob > | batchJob |
if we run in batch, the batch job object we are using More... | |
std::vector< std::size_t > | batchJobIndices |
if we run in batch, this is the list of job-indices to run More... | |
std::string | batchName |
the name of the submission script to use. More... | |
std::string | batchInit |
any additional code we need for setting up the batch job. More... | |
std::string | batchJobId |
the code needed for setting EL_JOBID More... | |
bool | batchSkipReleaseSetup {false} |
whether to skip the release setup More... | |
std::string | batchWriteLocation |
the directory location for writing batch output More... | |
std::string | batchSubmitLocation |
the directory location with batch input configuration More... | |
bool | sharedFileSystem {true} |
whether we have/use a shared file system More... | |
std::set< std::size_t > | batchJobSuccess |
the list of successful, failed, unknown batch segments More... | |
std::set< std::size_t > | batchJobFailure |
std::set< std::size_t > | batchJobUnknown |
ManagerStep | step {ManagerStep::initial} |
the current ManagerStep More... | |
ManagerStep | nextStep {ManagerStep::initial} |
the next ManagerStep More... | |
std::map< std::pair< ManagerOrder, std::string >, std::unique_ptr< Manager > > | managers |
the list of managers to run More... | |
an internal data structure for passing data between different manager objects anbd step
Essentially Manager objects don't talk to each other directly and don't cache any information between steps. So any data that needs to get stored and passed around instead gets added to this structure. Among other things this means that managers are only fairly loosely coupled and don't really need to know about each other.
Generally only some of the information in this structure will be used for any given operation. That is considered acceptable, as the cost of extra members in this data structure are very low. Though it does make for a rather large data structure.
Definition at line 45 of file ManagerData.h.
|
noexcept |
standard constructor
This is mostly defined, so that this include file doesn't need to include a whole bunch of other files, just to destruct their objects
Definition at line 30 of file ManagerData.cxx.
|
noexcept |
standard destructor
This is mostly defined, so that this include file doesn't need to include a whole bunch of other files, just to destruct their objects
Definition at line 36 of file ManagerData.cxx.
void EL::Detail::ManagerData::addManager | ( | std::unique_ptr< Manager > | manager | ) |
add the given manager
Definition at line 42 of file ManagerData.cxx.
StatusCode EL::Detail::ManagerData::run | ( | ) |
run all the managers from start to finish
Definition at line 52 of file ManagerData.cxx.
std::string EL::Detail::ManagerData::batchInit |
any additional code we need for setting up the batch job.
if multiple files are used, {JOBID} will be replaced with the index of the current file.
Some batch systems need extra lines when making there submission scripts, which can either be specially formatted option lines or just some special commands.
Definition at line 120 of file ManagerData.h.
std::unique_ptr<BatchJob> EL::Detail::ManagerData::batchJob |
if we run in batch, the batch job object we are using
Definition at line 96 of file ManagerData.h.
std::set<std::size_t> EL::Detail::ManagerData::batchJobFailure |
Definition at line 160 of file ManagerData.h.
std::string EL::Detail::ManagerData::batchJobId |
the code needed for setting EL_JOBID
Normally one can just pass the index of the job as the first argument to the execution script, but some systems instead use environment variables rationale.
This is not used if we have separate execution scripts from the job.
Definition at line 131 of file ManagerData.h.
std::vector<std::size_t> EL::Detail::ManagerData::batchJobIndices |
if we run in batch, this is the list of job-indices to run
Definition at line 100 of file ManagerData.h.
std::set<std::size_t> EL::Detail::ManagerData::batchJobSuccess |
the list of successful, failed, unknown batch segments
Definition at line 159 of file ManagerData.h.
std::set<std::size_t> EL::Detail::ManagerData::batchJobUnknown |
Definition at line 161 of file ManagerData.h.
std::string EL::Detail::ManagerData::batchName |
the name of the submission script to use.
if this contains {JOBID} it will create one script for each job id
Some batch systems are picky about names. Others don't allow passing arguments into submission scripts. So this allows being flexible.
Definition at line 110 of file ManagerData.h.
bool EL::Detail::ManagerData::batchSkipReleaseSetup {false} |
whether to skip the release setup
Some batch drivers will setup the release in their own way, or will not need a release setup. Setting this to true will skip the standard release setup.
Besides avoiding to create the release setup commands, this will also suppress errors when the cmake-work-directory can not be located.
Definition at line 143 of file ManagerData.h.
std::string EL::Detail::ManagerData::batchSubmitLocation |
the directory location with batch input configuration
Definition at line 151 of file ManagerData.h.
std::string EL::Detail::ManagerData::batchWriteLocation |
the directory location for writing batch output
Definition at line 147 of file ManagerData.h.
bool EL::Detail::ManagerData::completed {false} |
whether the job completed
Definition at line 93 of file ManagerData.h.
the driver we are working on/with
Definition at line 63 of file ManagerData.h.
Job* EL::Detail::ManagerData::job {nullptr} |
the user job we are submitting
Definition at line 82 of file ManagerData.h.
std::map<std::pair<ManagerOrder,std::string>,std::unique_ptr<Manager> > EL::Detail::ManagerData::managers |
the list of managers to run
Definition at line 175 of file ManagerData.h.
ManagerStep EL::Detail::ManagerData::nextStep {ManagerStep::initial} |
the next ManagerStep
By having this part of the manager data I am able to adjust the flow order via the managers (if desired)
Definition at line 171 of file ManagerData.h.
SH::MetaObject EL::Detail::ManagerData::options |
the options with which we submit this job
Definition at line 79 of file ManagerData.h.
bool EL::Detail::ManagerData::resubmit {false} |
whether we are merely resubmitting this job
Definition at line 73 of file ManagerData.h.
std::string EL::Detail::ManagerData::resubmitOption |
if we are resubmitting, the resubmit option chosen
Definition at line 76 of file ManagerData.h.
bool EL::Detail::ManagerData::retrieved {false} |
whether we successfully retrieved the job in this process
Definition at line 90 of file ManagerData.h.
bool EL::Detail::ManagerData::sharedFileSystem {true} |
whether we have/use a shared file system
Definition at line 155 of file ManagerData.h.
ManagerStep EL::Detail::ManagerData::step {ManagerStep::initial} |
the current ManagerStep
Definition at line 165 of file ManagerData.h.
std::string EL::Detail::ManagerData::submitDir |
the path to the submission directory
Definition at line 66 of file ManagerData.h.
SubmitDirMode EL::Detail::ManagerData::submitDirMode {SubmitDirMode::NO_CLOBBER} |
the mode with which we handle the submission directory
Definition at line 70 of file ManagerData.h.
bool EL::Detail::ManagerData::submitted {false} |
whether we successfully submitted the job in this process
Definition at line 86 of file ManagerData.h.