Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
AthenaMPToolBase Class Referenceabstract

#include <AthenaMPToolBase.h>

Inheritance diagram for AthenaMPToolBase:
Collaboration diagram for AthenaMPToolBase:

Public Member Functions

 AthenaMPToolBase (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~AthenaMPToolBase () override
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual StatusCode wait_once ATLAS_NOT_THREAD_SAFE (pid_t &pid) override
 
virtual void reportSubprocessStatuses () override
 
virtual AthenaMP::AllWorkerOutputs_ptr generateOutputReport () override
 
virtual void useFdsRegistry (std::shared_ptr< AthenaInterprocess::FdsRegistry >) override
 
virtual void setRandString (const std::string &randStr) override
 
virtual void setMaxEvt (int maxEvt) override
 
virtual void setMPRunStop (const AthenaInterprocess::IMPRunStop *runStop) override
 
virtual void killChildren () override
 
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > virtual operator() ATLAS_NOT_THREAD_SAFE(const AthenaInterprocess std::unique_ptr< AthenaInterprocess::ScheduledWorkbootstrap_func ()=0
 
virtual std::unique_ptr< AthenaInterprocess::ScheduledWorkexec_func ()=0
 
virtual std::unique_ptr< AthenaInterprocess::ScheduledWorkfin_func ()=0
 
virtual std::unique_ptr< ScheduledWork > operator () ATLAS_NOT_THREAD_SAFE(const ScheduledWork &)=0
 

Protected Types

enum  ESRange_Status {
  ESRANGE_SUCCESS, ESRANGE_NOTFOUND, ESRANGE_SEEKFAILED, ESRANGE_PROCFAILED,
  ESRANGE_FILENOTMADE, ESRANGE_BADINPFILE
}
 
enum  Func_Flag { FUNC_BOOTSTRAP, FUNC_EXEC, FUNC_FIN }
 

Protected Member Functions

int mapAsyncFlag ATLAS_NOT_THREAD_SAFE (Func_Flag flag, pid_t pid=0)
 
int redirectLog (const std::string &rundir, bool addTimeStamp=true)
 
int updateIoReg (const std::string &rundir)
 
std::string fmterror (int errnum)
 
int reopenFds ()
 
int handleSavedPfc (const std::filesystem::path &dest_path)
 
void waitForSignal ()
 
IEvtSelector * evtSelector ()
 

Protected Attributes

int m_nprocs {-1}
 Number of workers spawned by the master process. More...
 
int m_maxEvt {-1}
 Maximum number of events assigned to the job. More...
 
std::string m_subprocTopDir
 Top run directory for subprocesses. More...
 
std::string m_subprocDirPrefix
 For ex. "worker__". More...
 
std::string m_evtSelName
 Name of the event selector. More...
 
AthenaInterprocess::ProcessGroupm_processGroup {nullptr}
 
const AthenaInterprocess::IMPRunStopm_mpRunStop {nullptr}
 
ServiceHandle< IEventProcessor > m_evtProcessor
 
ServiceHandle< IAppMgrUI > m_appMgr
 
ServiceHandle< IFileMgr > m_fileMgr
 
ServiceHandle< IIoComponentMgr > m_ioMgr
 
SmartIF< IEvtSelector > m_evtSelector
 
std::string m_fileMgrLog
 
std::shared_ptr< AthenaInterprocess::FdsRegistrym_fdsRegistry
 
std::string m_randStr
 
Gaudi::Property< bool > m_isPileup {this, "IsPileup", false, "Flag for configuring PileUpEventLoopMgr"}
 

Private Member Functions

 AthenaMPToolBase ()
 
 AthenaMPToolBase (const AthenaMPToolBase &)
 
AthenaMPToolBaseoperator= (const AthenaMPToolBase &)
 
int reopenFd (int fd, const std::string &name)
 

Detailed Description

Definition at line 23 of file AthenaMPToolBase.h.

Member Enumeration Documentation

◆ ESRange_Status

Enumerator
ESRANGE_SUCCESS 
ESRANGE_NOTFOUND 
ESRANGE_SEEKFAILED 
ESRANGE_PROCFAILED 
ESRANGE_FILENOTMADE 
ESRANGE_BADINPFILE 

Definition at line 58 of file AthenaMPToolBase.h.

◆ Func_Flag

Enumerator
FUNC_BOOTSTRAP 
FUNC_EXEC 
FUNC_FIN 

Definition at line 67 of file AthenaMPToolBase.h.

67  {
69  , FUNC_EXEC
70  , FUNC_FIN
71  };

Constructor & Destructor Documentation

◆ AthenaMPToolBase() [1/3]

AthenaMPToolBase::AthenaMPToolBase ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 32 of file AthenaMPToolBase.cxx.

35  : base_class(type,name,parent)
36  , m_evtProcessor("AthenaEventLoopMgr",name)
37  , m_appMgr("ApplicationMgr",name)
38  , m_fileMgr("FileMgr",name)
39  , m_ioMgr("IoComponentMgr",name)
40 {
41 }

◆ ~AthenaMPToolBase()

AthenaMPToolBase::~AthenaMPToolBase ( )
overridevirtual

Definition at line 43 of file AthenaMPToolBase.cxx.

44 {
45 }

◆ AthenaMPToolBase() [2/3]

AthenaMPToolBase::AthenaMPToolBase ( )
private

◆ AthenaMPToolBase() [3/3]

AthenaMPToolBase::AthenaMPToolBase ( const AthenaMPToolBase )
private

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

int mapAsyncFlag AthenaMPToolBase::ATLAS_NOT_THREAD_SAFE ( Func_Flag  flag,
pid_t  pid = 0 
)
protected

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

virtual StatusCode wait_once AthenaMPToolBase::ATLAS_NOT_THREAD_SAFE ( pid_t pid)
overridevirtual

◆ bootstrap_func()

virtual std::unique_ptr<AthenaInterprocess::ScheduledWork> virtual operator () ATLAS_NOT_THREAD_SAFE ( const AthenaInterprocess std::unique_ptr<AthenaInterprocess::ScheduledWork> AthenaMPToolBase::bootstrap_func ( )
pure virtual

◆ evtSelector()

IEvtSelector* AthenaMPToolBase::evtSelector ( )
inlineprotected

Definition at line 83 of file AthenaMPToolBase.h.

83 { return m_evtSelector; }

◆ exec_func()

virtual std::unique_ptr<AthenaInterprocess::ScheduledWork> AthenaMPToolBase::exec_func ( )
pure virtual

◆ fin_func()

virtual std::unique_ptr<AthenaInterprocess::ScheduledWork> AthenaMPToolBase::fin_func ( )
pure virtual

◆ finalize()

StatusCode AthenaMPToolBase::finalize ( )
overridevirtual

Reimplemented in SharedEvtQueueConsumer, SharedHiveEvtQueueConsumer, EvtRangeScatterer, and SharedWriterTool.

Definition at line 86 of file AthenaMPToolBase.cxx.

87 {
88  return StatusCode::SUCCESS;
89 }

◆ fmterror()

std::string AthenaMPToolBase::fmterror ( int  errnum)
protected

Definition at line 332 of file AthenaMPToolBase.cxx.

333 {
334  char buf[256];
335  strerror_r(errnum, buf, sizeof(buf));
336  return std::string(buf);
337 }

◆ generateOutputReport()

AthenaMP::AllWorkerOutputs_ptr AthenaMPToolBase::generateOutputReport ( )
overridevirtual

Reimplemented in EvtRangeProcessor, EvtRangeScatterer, and SharedWriterTool.

Definition at line 118 of file AthenaMPToolBase.cxx.

119 {
121 
122  if(m_fileMgrLog.empty()) {
123  ATH_MSG_WARNING(name() << " cannot make output report because FileMgr has not been configured to write log file!");
124  }
125  else {
126  // Collect output files made by the workers
127  std::string line;
128  for(int i=0;i<m_nprocs;++i) {
129  // Get the name of FileMgr log
130  std::ostringstream workindex;
131  workindex<<i;
133  logFilePath /= std::filesystem::path(m_subprocDirPrefix+workindex.str());
134  std::filesystem::path logFile(logFilePath);
136  if(!(std::filesystem::exists(logFile)&&std::filesystem::is_regular_file(logFile))) {
137  ATH_MSG_WARNING(logFile.string() << " either does not exist or is not a regular file. Skipping");
138  continue;
139  }
140 
141  ATH_MSG_DEBUG("FileMgr log file (" << i << ") " << logFile);
142 
143  std::ifstream inpStream(logFile.string().c_str());
144  std::set<std::string> reportedFiles; // Don't report the same file twice
145  while(!inpStream.eof()) {
146  std::getline(inpStream,line);
147  if(line.find("WRITE")!=std::string::npos) {
148  // Parse the entry
149  size_t startpos(0);
150  std::vector<std::string> entries;
151  while(startpos<line.size()) {
152  while(line[startpos]==' ')
153  startpos++;
154 
155  size_t endpos = line.find(' ',startpos);
156  if(endpos==std::string::npos) endpos = line.size();
157  entries.push_back(line.substr(startpos,endpos-startpos));
158  startpos=endpos+1;
159  }
160 
161  // enties[0] is filename
162  std::filesystem::path filenamePath(entries[0]);
163  std::filesystem::path basename = filenamePath.filename();
164  if(reportedFiles.find(basename.string())==reportedFiles.end())
165  reportedFiles.insert(basename.string());
166  else
167  continue;
168  std::filesystem::path absolutename = basename.is_absolute() ? basename : std::filesystem::absolute(std::filesystem::path(logFilePath)/=basename);
169  AthenaMP::AllWorkerOutputsIterator it1 = jobOutputs->find(basename.string());
170  if(it1==jobOutputs->end()) {
171  (*jobOutputs)[basename.string()] = AthenaMP::SingleWorkerOutputs();
172  (*jobOutputs)[basename.string()].reserve(m_nprocs);
173  }
174 
175  AthenaMP::WorkerOutput newOutput;
176  newOutput.filename = absolutename.string();
177  newOutput.technology = entries[1];
178  newOutput.description = entries[2];
179  newOutput.access_mode = entries[3];
180  newOutput.shared = (line.find("SHARED")!=std::string::npos);
181 
182  (*jobOutputs)[basename.string()].push_back(newOutput);
183  }
184  }
185  }
186  }
187  return jobOutputs;
188 }

◆ handleSavedPfc()

int AthenaMPToolBase::handleSavedPfc ( const std::filesystem::path &  dest_path)
protected

Definition at line 395 of file AthenaMPToolBase.cxx.

396 {
397  if(std::filesystem::is_regular_file("PoolFileCatalog.xml.AthenaMP-saved"))
398  COPY_FILE_HACK("PoolFileCatalog.xml.AthenaMP-saved",dest_path.string()+"/PoolFileCatalog.xml");
399  return 0;
400 }

◆ initialize()

StatusCode AthenaMPToolBase::initialize ( )
overridevirtual

Reimplemented in EvtRangeProcessor, SharedEvtQueueConsumer, SharedHiveEvtQueueConsumer, EvtRangeScatterer, and SharedWriterTool.

Definition at line 47 of file AthenaMPToolBase.cxx.

48 {
49  ATH_MSG_DEBUG("In initialize");
50 
51  if(m_isPileup) {
52  m_evtProcessor = ServiceHandle<IEventProcessor>("PileUpEventLoopMgr",name());
53  ATH_MSG_INFO("The job running in pileup mode");
54  }
55  else {
56  ATH_MSG_INFO("The job running in non-pileup mode");
57  }
58 
59  ATH_CHECK(m_evtProcessor.retrieve());
60  ATH_CHECK(m_appMgr.retrieve());
61 
62  SmartIF<IProperty> prpMgr(serviceLocator());
63  if(prpMgr.isValid()) {
64  // Get event selector name. Retrieve EventSelector and EventSeek
65  m_evtSelName = prpMgr->getProperty("EvtSel").toString();
66  // If the job runs with no event selector, then the name will be empty
67  if(!m_evtSelName.empty()) {
68  m_evtSelector = serviceLocator()->service(m_evtSelName);
69  ATH_CHECK(m_evtSelector.isValid());
70  }
71  }
72  else {
73  ATH_MSG_ERROR("IProperty interface not found in ApplicationMgr");
74  return StatusCode::FAILURE;
75  }
76 
77  ATH_CHECK(m_fileMgr.retrieve());
78 
79  SmartIF<IProperty> prpMgr1(m_fileMgr.get());
80  ATH_CHECK(prpMgr1.isValid());
81  m_fileMgrLog = prpMgr1->getProperty("LogFile").toString();
82 
83  return StatusCode::SUCCESS;
84 }

◆ killChildren()

void AthenaMPToolBase::killChildren ( )
overridevirtual

Definition at line 200 of file AthenaMPToolBase.cxx.

201 {
203  kill(child.getProcessID(),SIGKILL);
204  }
205 }

◆ operator()

virtual std::unique_ptr<ScheduledWork> AthenaInterprocess::IMessageDecoder::operator ( ) const &
pure virtualinherited

◆ operator=()

◆ redirectLog()

int AthenaMPToolBase::redirectLog ( const std::string &  rundir,
bool  addTimeStamp = true 
)
protected

Definition at line 268 of file AthenaMPToolBase.cxx.

269 {
270  // Redirect both stdout and stderr to the same file AthenaMP.log
271  int dup2result1(0), dup2result2(0);
272 
273  int newout = open(std::string(rundir+"/AthenaMP.log").c_str(),O_CREAT | O_RDWR, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
274  if(newout==-1) {
275  ATH_MSG_ERROR("Unable to open log file in the run directory. " << fmterror(errno));
276  return -1;
277  }
278  dup2result1 = dup2(newout, STDOUT_FILENO);
279  dup2result2 = dup2(newout, STDERR_FILENO);
280  TEMP_FAILURE_RETRY(close(newout));
281  if(dup2result1==-1) {
282  ATH_MSG_ERROR("Unable to redirect standard output. " << fmterror(errno));
283  return -1;
284  }
285  if(dup2result2==-1) {
286  ATH_MSG_ERROR("Unable to redirect standard error. " << fmterror(errno));
287  return -1;
288  }
289 
290  if(addTimeStamp) {
291  SmartIF<IProperty> propertyServer(msgSvc());
292  if(propertyServer==0) {
293  ATH_MSG_ERROR("Unable to cast message svc to IProperty");
294  return -1;
295  }
296 
297  std::string propertyName("Format");
298  std::string oldFormat("");
299  StringProperty formatProp(propertyName,oldFormat);
300  StatusCode sc = propertyServer->getProperty(&formatProp);
301  if(sc.isFailure()) {
302  ATH_MSG_WARNING("Message Service does not have Format property");
303  }
304  else {
305  oldFormat = formatProp.value();
306  if(oldFormat.find("%t")==std::string::npos) {
307  // Add time stamps
308  std::string newFormat("%t " + oldFormat);
309  StringProperty newFormatProp(propertyName,newFormat);
310  ATH_CHECK(propertyServer->setProperty(newFormatProp), -1);
311  }
312  else {
313  ATH_MSG_DEBUG("MsgSvc format already contains timestamps. Nothing to be done");
314  }
315  }
316  }
317 
318  return 0;
319 }

◆ reopenFd()

int AthenaMPToolBase::reopenFd ( int  fd,
const std::string &  name 
)
private

Definition at line 418 of file AthenaMPToolBase.cxx.

419 {
420  ATH_MSG_DEBUG("Attempting to reopen descriptor for " << name);
421  int old_openflags = fcntl(fd,F_GETFL,0);
422  switch(old_openflags & O_ACCMODE) {
423  case O_RDONLY: {
424  ATH_MSG_DEBUG("The File Access Mode is RDONLY");
425  break;
426  }
427  case O_WRONLY: {
428  ATH_MSG_DEBUG("The File Access Mode is WRONLY");
429  break;
430  }
431  case O_RDWR: {
432  ATH_MSG_DEBUG("The File Access Mode is RDWR");
433  break;
434  }
435  }
436 
437  int old_descflags = fcntl(fd,F_GETFD,0);
438  off_t oldpos = lseek(fd,0,SEEK_CUR);
439  if(oldpos==-1) {
440  if(errno==ESPIPE) {
441  ATH_MSG_WARNING("Dealing with PIPE. Skipping ... (FIXME!)");
442  }
443  else {
444  ATH_MSG_ERROR("When re-opening file descriptors lseek failed on " << name << ". " << fmterror(errno));
445  return -1;
446  }
447  }
448  else {
449  Io::Fd newfd = open(name.c_str(),old_openflags);
450  if(newfd==-1) {
451  ATH_MSG_ERROR("When re-opening file descriptors unable to open " << name << " for reading. " << fmterror(errno));
452  return -1;
453  }
454  if(lseek(newfd,oldpos,SEEK_SET)==-1){
455  ATH_MSG_ERROR("When re-opening file descriptors lseek failed on the newly opened " << name << ". " << fmterror(errno));
456  TEMP_FAILURE_RETRY(close(newfd));
457  return -1;
458  }
459  TEMP_FAILURE_RETRY(close(fd));
460  if(dup2(newfd,fd)==-1) {
461  ATH_MSG_ERROR("When re-opening file descriptors unable to duplicate descriptor for " << name << ". " << fmterror(errno));
462  TEMP_FAILURE_RETRY(close(newfd));
463  return -1;
464  }
465  if(fcntl(fd,F_SETFD,old_descflags)==-1) {
466  ATH_MSG_ERROR("When re-opening file descriptors unable to set descriptor flags for " << name << ". " << fmterror(errno));
467  TEMP_FAILURE_RETRY(close(newfd));
468  return -1;
469  }
470  TEMP_FAILURE_RETRY(close(newfd));
471  }
472  return 0;
473 }

◆ reopenFds()

int AthenaMPToolBase::reopenFds ( )
protected

Definition at line 339 of file AthenaMPToolBase.cxx.

340 {
341  // Reopen file descriptors.
342  // First go over all open files, which have been registered with the FileMgr
343  // Then also check the FdsRegistry, in case it contains some files not registered with the FileMgr
344  std::set<int> fdLog;
345 
346  // Query the FileMgr contents
347  std::vector<const Io::FileAttr*> filemgrFiles;
348  std::vector<const Io::FileAttr*>::const_iterator itFile;
349  unsigned filenum = m_fileMgr->getFiles(filemgrFiles); // Get attributes for open files only. We don't care about closed ones at this point
350  if(filenum!=filemgrFiles.size())
351  ATH_MSG_WARNING("getFiles returned " << filenum << " while vector size is " << filemgrFiles.size());
352 
353  for(itFile=filemgrFiles.begin();itFile!=filemgrFiles.end();++itFile) {
354  ATH_MSG_DEBUG("* " << **itFile);
355  const std::string& filename = (**itFile).name();
356  Io::Fd fd = (**itFile).fd();
357 
358  if(fd==-1) {
359  // It is legal to have fd=-1 for remote inputs
360  // On the other hand, these inputs should not remain open after fork. The issue being tracked at ATEAM-434.
361  // So, this hopefully is a temporary patch
362  ATH_MSG_WARNING("FD=-1 detected on an open file retrieved from FileMgr. Skip FD reopening. File name: " << filename);
363  continue;
364  }
365 
366  if(reopenFd(fd,filename))
367  return -1;
368 
369  fdLog.insert(fd);
370  }
371 
372  // Check the FdsRegistry
373  for(const AthenaInterprocess::FdsRegistryEntry& regEntry : *m_fdsRegistry) {
374  if(fdLog.find(regEntry.fd)!=fdLog.end()) {
375  ATH_MSG_DEBUG("The file from FdsRegistry " << regEntry.name << " was registered with FileMgr. Skip reopening");
376  }
377  else {
378  ATH_MSG_WARNING("The file " << regEntry.name << " has not been registered with the FileMgr!");
379 
380  if(regEntry.fd==-1) {
381  // Same protection as the one above
382  ATH_MSG_WARNING("FD=-1 detected on an open file retrieved from FD Registry. Skip FD reopening. File name: " << regEntry.name);
383  continue;
384  }
385 
386  if(reopenFd(regEntry.fd,regEntry.name))
387  return -1;
388 
389  fdLog.insert(regEntry.fd);
390  }
391  }
392  return 0;
393 }

◆ reportSubprocessStatuses()

void AthenaMPToolBase::reportSubprocessStatuses ( )
overridevirtual

Reimplemented in EvtRangeProcessor, SharedEvtQueueConsumer, and SharedHiveEvtQueueConsumer.

Definition at line 110 of file AthenaMPToolBase.cxx.

111 {
112  ATH_MSG_INFO("Statuses of sub-processes");
113  const std::vector<AthenaInterprocess::ProcessStatus>& statuses = m_processGroup->getStatuses();
114  for(size_t i=0; i<statuses.size(); ++i)
115  ATH_MSG_INFO("*** Process PID=" << statuses[i].pid << ". Status " << ((statuses[i].exitcode)?"FAILURE":"SUCCESS"));
116 }

◆ setMaxEvt()

virtual void AthenaMPToolBase::setMaxEvt ( int  maxEvt)
inlineoverridevirtual

Definition at line 44 of file AthenaMPToolBase.h.

44 {m_maxEvt=maxEvt;}

◆ setMPRunStop()

virtual void AthenaMPToolBase::setMPRunStop ( const AthenaInterprocess::IMPRunStop runStop)
inlineoverridevirtual

Definition at line 45 of file AthenaMPToolBase.h.

45 {m_mpRunStop=runStop;}

◆ setRandString()

void AthenaMPToolBase::setRandString ( const std::string &  randStr)
overridevirtual

Definition at line 195 of file AthenaMPToolBase.cxx.

196 {
197  m_randStr = randStr;
198 }

◆ updateIoReg()

int AthenaMPToolBase::updateIoReg ( const std::string &  rundir)
protected

Definition at line 321 of file AthenaMPToolBase.cxx.

322 {
323  ATH_CHECK(m_ioMgr.retrieve(), -1);
324 
325  // update the IoRegistry for the new workdir - make sure we use absolute path
327  ATH_CHECK(m_ioMgr->io_update_all(abs_rundir.string()), -1);
328 
329  return 0;
330 }

◆ useFdsRegistry()

void AthenaMPToolBase::useFdsRegistry ( std::shared_ptr< AthenaInterprocess::FdsRegistry registry)
overridevirtual

Definition at line 190 of file AthenaMPToolBase.cxx.

191 {
193 }

◆ waitForSignal()

void AthenaMPToolBase::waitForSignal ( )
protected

Definition at line 402 of file AthenaMPToolBase.cxx.

403 {
404  ATH_MSG_INFO("Bootstrap worker PID " << getpid() << " - waiting for SIGUSR1");
405  sigset_t mask, oldmask;
406 
408 
409  sigemptyset (&mask);
410  sigaddset (&mask, SIGUSR1);
411 
412  sigprocmask (SIG_BLOCK, &mask, &oldmask);
414  sigsuspend (&oldmask);
415  sigprocmask (SIG_UNBLOCK, &mask, NULL);
416 }

Member Data Documentation

◆ m_appMgr

ServiceHandle<IAppMgrUI> AthenaMPToolBase::m_appMgr
protected

Definition at line 95 of file AthenaMPToolBase.h.

◆ m_evtProcessor

ServiceHandle<IEventProcessor> AthenaMPToolBase::m_evtProcessor
protected

Definition at line 94 of file AthenaMPToolBase.h.

◆ m_evtSelector

SmartIF<IEvtSelector> AthenaMPToolBase::m_evtSelector
protected

Definition at line 98 of file AthenaMPToolBase.h.

◆ m_evtSelName

std::string AthenaMPToolBase::m_evtSelName
protected

Name of the event selector.

Definition at line 89 of file AthenaMPToolBase.h.

◆ m_fdsRegistry

std::shared_ptr<AthenaInterprocess::FdsRegistry> AthenaMPToolBase::m_fdsRegistry
protected

Definition at line 100 of file AthenaMPToolBase.h.

◆ m_fileMgr

ServiceHandle<IFileMgr> AthenaMPToolBase::m_fileMgr
protected

Definition at line 96 of file AthenaMPToolBase.h.

◆ m_fileMgrLog

std::string AthenaMPToolBase::m_fileMgrLog
protected

Definition at line 99 of file AthenaMPToolBase.h.

◆ m_ioMgr

ServiceHandle<IIoComponentMgr> AthenaMPToolBase::m_ioMgr
protected

Definition at line 97 of file AthenaMPToolBase.h.

◆ m_isPileup

Gaudi::Property<bool> AthenaMPToolBase::m_isPileup {this, "IsPileup", false, "Flag for configuring PileUpEventLoopMgr"}
protected

Definition at line 103 of file AthenaMPToolBase.h.

◆ m_maxEvt

int AthenaMPToolBase::m_maxEvt {-1}
protected

Maximum number of events assigned to the job.

Definition at line 86 of file AthenaMPToolBase.h.

◆ m_mpRunStop

const AthenaInterprocess::IMPRunStop* AthenaMPToolBase::m_mpRunStop {nullptr}
protected

Definition at line 92 of file AthenaMPToolBase.h.

◆ m_nprocs

int AthenaMPToolBase::m_nprocs {-1}
protected

Number of workers spawned by the master process.

Definition at line 85 of file AthenaMPToolBase.h.

◆ m_processGroup

AthenaInterprocess::ProcessGroup* AthenaMPToolBase::m_processGroup {nullptr}
protected

Definition at line 91 of file AthenaMPToolBase.h.

◆ m_randStr

std::string AthenaMPToolBase::m_randStr
protected

Definition at line 101 of file AthenaMPToolBase.h.

◆ m_subprocDirPrefix

std::string AthenaMPToolBase::m_subprocDirPrefix
protected

For ex. "worker__".

Definition at line 88 of file AthenaMPToolBase.h.

◆ m_subprocTopDir

std::string AthenaMPToolBase::m_subprocTopDir
protected

Top run directory for subprocesses.

Definition at line 87 of file AthenaMPToolBase.h.


The documentation for this class was generated from the following files:
python.Dso.registry
registry
Definition: Control/AthenaServices/python/Dso.py:159
python.DQPostProcessMod.rundir
def rundir(fname)
Definition: DQPostProcessMod.py:116
AthenaInterprocess::ProcessGroup::getStatuses
const std::vector< ProcessStatus > & getStatuses() const
Definition: ProcessGroup.cxx:204
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:128
AthenaMPToolBase::ESRANGE_BADINPFILE
@ ESRANGE_BADINPFILE
Definition: AthenaMPToolBase.h:64
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
collListGuids.line
string line
Definition: collListGuids.py:77
AthenaMP::WorkerOutput::description
std::string description
Definition: IAthenaMPTool.h:24
AthenaMPToolBase::m_processGroup
AthenaInterprocess::ProcessGroup * m_processGroup
Definition: AthenaMPToolBase.h:91
AthenaMPToolBase::m_randStr
std::string m_randStr
Definition: AthenaMPToolBase.h:101
AthenaMPToolBase::m_nprocs
int m_nprocs
Number of workers spawned by the master process.
Definition: AthenaMPToolBase.h:85
AthenaMPToolBase::FUNC_FIN
@ FUNC_FIN
Definition: AthenaMPToolBase.h:70
AthenaInterprocess::ProcessGroup::getChildren
const std::vector< Process > & getChildren() const
Definition: ProcessGroup.cxx:197
plotting.yearwise_luminosity.absolute
absolute
Definition: yearwise_luminosity.py:29
AthenaMPToolBase::fmterror
std::string fmterror(int errnum)
Definition: AthenaMPToolBase.cxx:332
DeMoUpdate.statuses
list statuses
Definition: DeMoUpdate.py:568
AthenaMPToolBase::m_evtSelName
std::string m_evtSelName
Name of the event selector.
Definition: AthenaMPToolBase.h:89
athena.exitcode
int exitcode
Definition: athena.py:161
AthenaMPToolBase::ESRANGE_SEEKFAILED
@ ESRANGE_SEEKFAILED
Definition: AthenaMPToolBase.h:61
AthenaMPToolBase::m_fileMgrLog
std::string m_fileMgrLog
Definition: AthenaMPToolBase.h:99
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
AthenaMP::AllWorkerOutputsIterator
AllWorkerOutputs::iterator AllWorkerOutputsIterator
Definition: IAthenaMPTool.h:30
AthenaMP::SingleWorkerOutputs
std::vector< WorkerOutput > SingleWorkerOutputs
Definition: IAthenaMPTool.h:28
Fd
IIoSvc::Fd Fd
Definition: IoSvc.cxx:22
sigaddset
#define sigaddset(x, y)
Definition: SealSignal.h:84
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthenaMPToolBase::FUNC_EXEC
@ FUNC_EXEC
Definition: AthenaMPToolBase.h:69
COPY_FILE_HACK
#define COPY_FILE_HACK(_src, _dest)
Definition: copy_file_icc_hack.h:15
sigset_t
int sigset_t
Definition: SealSignal.h:80
AthenaMPToolBase::m_evtSelector
SmartIF< IEvtSelector > m_evtSelector
Definition: AthenaMPToolBase.h:98
AthenaMPToolBase::m_appMgr
ServiceHandle< IAppMgrUI > m_appMgr
Definition: AthenaMPToolBase.h:95
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthenaMPToolBase::m_isPileup
Gaudi::Property< bool > m_isPileup
Definition: AthenaMPToolBase.h:103
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
python.DecayParser.buf
buf
print ("=> [%s]"cmd)
Definition: DecayParser.py:27
DetDescrDictionaryDict::it1
std::vector< HWIdentifier >::iterator it1
Definition: DetDescrDictionaryDict.h:17
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthenaMPToolBase::reopenFd
int reopenFd(int fd, const std::string &name)
Definition: AthenaMPToolBase.cxx:418
AthenaMP::WorkerOutput::shared
bool shared
Definition: IAthenaMPTool.h:26
ParticleGun_EoverP_Config.pid
pid
Definition: ParticleGun_EoverP_Config.py:62
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthenaMPToolBase_d::pauseForDebug
void pauseForDebug(int)
Definition: AthenaMPToolBase.cxx:27
AthenaMPToolBase::ESRANGE_SUCCESS
@ ESRANGE_SUCCESS
Definition: AthenaMPToolBase.h:59
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthenaMP::WorkerOutput::access_mode
std::string access_mode
Definition: IAthenaMPTool.h:25
AthenaMPToolBase::m_mpRunStop
const AthenaInterprocess::IMPRunStop * m_mpRunStop
Definition: AthenaMPToolBase.h:92
ReadFromCoolCompare.fd
fd
Definition: ReadFromCoolCompare.py:196
AthenaMPToolBase::ESRANGE_PROCFAILED
@ ESRANGE_PROCFAILED
Definition: AthenaMPToolBase.h:62
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
AthenaMPToolBase::m_ioMgr
ServiceHandle< IIoComponentMgr > m_ioMgr
Definition: AthenaMPToolBase.h:97
AthenaInterprocess::Process
Definition: Process.h:17
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:67
Trk::open
@ open
Definition: BinningType.h:40
AthenaMPToolBase::m_maxEvt
int m_maxEvt
Maximum number of events assigned to the job.
Definition: AthenaMPToolBase.h:86
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthenaMP::WorkerOutput::technology
std::string technology
Definition: IAthenaMPTool.h:23
AthenaInterprocess::FdsRegistryEntry
Definition: FdsRegistry.h:13
AthenaMP::AllWorkerOutputs_ptr
std::unique_ptr< AllWorkerOutputs > AllWorkerOutputs_ptr
Definition: IAthenaMPTool.h:32
AthenaMP::WorkerOutput
Definition: IAthenaMPTool.h:21
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
entries
double entries
Definition: listroot.cxx:49
AthenaMPToolBase::m_subprocDirPrefix
std::string m_subprocDirPrefix
For ex. "worker__".
Definition: AthenaMPToolBase.h:88
AthenaMPToolBase::m_subprocTopDir
std::string m_subprocTopDir
Top run directory for subprocesses.
Definition: AthenaMPToolBase.h:87
python.dummyaccess.exists
def exists(filename)
Definition: dummyaccess.py:9
AthenaMPToolBase::ESRANGE_NOTFOUND
@ ESRANGE_NOTFOUND
Definition: AthenaMPToolBase.h:60
jetMakeRefSamples.logFile
string logFile
Definition: jetMakeRefSamples.py:57
AthenaMPToolBase::m_fileMgr
ServiceHandle< IFileMgr > m_fileMgr
Definition: AthenaMPToolBase.h:96
AthenaMP::AllWorkerOutputs
std::map< std::string, SingleWorkerOutputs > AllWorkerOutputs
Definition: IAthenaMPTool.h:29
AthenaMPToolBase::FUNC_BOOTSTRAP
@ FUNC_BOOTSTRAP
Definition: AthenaMPToolBase.h:68
sigemptyset
#define sigemptyset(x)
Definition: SealSignal.h:82
AthenaMPToolBase::ESRANGE_FILENOTMADE
@ ESRANGE_FILENOTMADE
Definition: AthenaMPToolBase.h:63
AthenaMPToolBase::m_fdsRegistry
std::shared_ptr< AthenaInterprocess::FdsRegistry > m_fdsRegistry
Definition: AthenaMPToolBase.h:100
AthenaMP::WorkerOutput::filename
std::string filename
Definition: IAthenaMPTool.h:22
AthenaMPToolBase_d::sig_done
std::atomic< bool > sig_done
Definition: AthenaMPToolBase.cxx:26
ServiceHandle< IEventProcessor >
AthenaMPToolBase::m_evtProcessor
ServiceHandle< IEventProcessor > m_evtProcessor
Definition: AthenaMPToolBase.h:94
beamspotman.basename
basename
Definition: beamspotman.py:640