ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaServices
src
MPIHiveEventLoopMgr.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
3
/*
4
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
#ifndef ATHENASERVICES_MPIHIVEEVENTLOOPMGR_H
8
#define ATHENASERVICES_MPIHIVEEVENTLOOPMGR_H
13
14
// Base class headers
15
#include "
AthenaHiveEventLoopMgr.h
"
16
17
// Athena headers
18
#include "
AthenaKernel/IMPIClusterSvc.h
"
19
#include "
EventInfo/EventID.h
"
/* number_type */
20
21
// Gaudi headers
22
#include "Gaudi/Property.h"
23
24
// Standard includes
25
#include <string>
26
34
class
MPIHiveEventLoopMgr
:
public
AthenaHiveEventLoopMgr
{
35
// for Hive
36
protected
:
38
ServiceHandle<IMPIClusterSvc>
m_clusterSvc
{
this
,
"MPIClusterSvc"
,
""
,
39
"MPIClusterSvc"
};
40
42
StatusCode
drainLocalScheduler
();
44
StatusCode
insertEvent
(
int
eventIdx,
bool
& endOfStream,
45
std::int64_t requestTime_ns);
47
StatusCode
workerEventLoop
();
49
StatusCode
masterEventLoop
(
int
maxEvt);
50
51
// Keep track of how many failed events we've had
52
int
m_contiguousFailedEvts
{0};
53
int
m_totalFailedEvts
{0};
54
// Keeps track of events already processed
55
int
m_nLocalCreatedEvts
{0};
56
int
m_nLocalSkippedEvts
{0};
57
int
m_nLocalFinishedEvts
{0};
58
59
public
:
61
MPIHiveEventLoopMgr
(
const
std::string&
name
, ISvcLocator* svcLoc);
63
virtual
~MPIHiveEventLoopMgr
();
65
virtual
StatusCode
initialize
()
override
;
67
virtual
StatusCode
finalize
()
override
;
69
virtual
StatusCode
nextEvent
(
int
maxevt)
override
;
70
71
private
:
73
UnsignedIntegerProperty
m_firstEventIndex
{
74
this
,
"FirstEventIndex"
, 0,
"First event index (Exec.SkipEvents)"
};
75
int
m_evtSelectorCurrentPos
= 0;
76
};
77
78
#endif
// ATHENASERVICES_MPIHIVEEVENTLOOPMGR_H
AthenaHiveEventLoopMgr.h
The default ATLAS batch event loop manager.
EventID.h
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
IMPIClusterSvc.h
AthenaHiveEventLoopMgr::name
virtual const std::string & name() const override
Definition
AthenaHiveEventLoopMgr.h:228
AthenaHiveEventLoopMgr::AthenaHiveEventLoopMgr
AthenaHiveEventLoopMgr(const std::string &nam, ISvcLocator *svcLoc)
Standard Constructor.
Definition
AthenaHiveEventLoopMgr.cxx:63
MPIHiveEventLoopMgr::workerEventLoop
StatusCode workerEventLoop()
Worker event loop (runs on worker, requests events over MPI).
Definition
MPIHiveEventLoopMgr.cxx:210
MPIHiveEventLoopMgr::drainLocalScheduler
StatusCode drainLocalScheduler()
Drain the local scheduler of any (at least one) completed events.
Definition
MPIHiveEventLoopMgr.cxx:384
MPIHiveEventLoopMgr::m_contiguousFailedEvts
int m_contiguousFailedEvts
Definition
MPIHiveEventLoopMgr.h:52
MPIHiveEventLoopMgr::m_clusterSvc
ServiceHandle< IMPIClusterSvc > m_clusterSvc
Reference to the MPIClusterSvc.
Definition
MPIHiveEventLoopMgr.h:38
MPIHiveEventLoopMgr::m_totalFailedEvts
int m_totalFailedEvts
Definition
MPIHiveEventLoopMgr.h:53
MPIHiveEventLoopMgr::MPIHiveEventLoopMgr
MPIHiveEventLoopMgr(const std::string &name, ISvcLocator *svcLoc)
Standard Constructor.
Definition
MPIHiveEventLoopMgr.cxx:21
MPIHiveEventLoopMgr::finalize
virtual StatusCode finalize() override
implementation of IAppMgrUI::finalize
Definition
MPIHiveEventLoopMgr.cxx:38
MPIHiveEventLoopMgr::m_nLocalSkippedEvts
int m_nLocalSkippedEvts
Definition
MPIHiveEventLoopMgr.h:56
MPIHiveEventLoopMgr::m_nLocalCreatedEvts
int m_nLocalCreatedEvts
Definition
MPIHiveEventLoopMgr.h:55
MPIHiveEventLoopMgr::~MPIHiveEventLoopMgr
virtual ~MPIHiveEventLoopMgr()
Standard Destructor.
MPIHiveEventLoopMgr::m_nLocalFinishedEvts
int m_nLocalFinishedEvts
Definition
MPIHiveEventLoopMgr.h:57
MPIHiveEventLoopMgr::nextEvent
virtual StatusCode nextEvent(int maxevt) override
implementation of IAppMgrUI::nextEvent. maxevt==0 returns immediately
Definition
MPIHiveEventLoopMgr.cxx:44
MPIHiveEventLoopMgr::masterEventLoop
StatusCode masterEventLoop(int maxEvt)
Master event loop (runs on master, provides events over MPI).
Definition
MPIHiveEventLoopMgr.cxx:62
MPIHiveEventLoopMgr::initialize
virtual StatusCode initialize() override
implementation of IAppMgrUI::initalize
Definition
MPIHiveEventLoopMgr.cxx:30
MPIHiveEventLoopMgr::insertEvent
StatusCode insertEvent(int eventIdx, bool &endOfStream, std::int64_t requestTime_ns)
Insert an event into the local scheduler.
Definition
MPIHiveEventLoopMgr.cxx:337
MPIHiveEventLoopMgr::m_firstEventIndex
UnsignedIntegerProperty m_firstEventIndex
Definition
MPIHiveEventLoopMgr.h:73
MPIHiveEventLoopMgr::m_evtSelectorCurrentPos
int m_evtSelectorCurrentPos
Definition
MPIHiveEventLoopMgr.h:75
ServiceHandle
Definition
ClusterMakerTool.h:36
Generated on
for ATLAS Offline Software by
1.17.0