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 "
AthenaServices/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
eventFinished
(
const
EventContext& ctx)
override
;
46
StatusCode
insertEvent
(
int
eventIdx,
bool
& endOfStream,
47
std::int64_t requestTime_ns);
49
StatusCode
workerEventLoop
();
51
StatusCode
masterEventLoop
(
int
maxEvt);
52
53
// Keep track of how many failed events we've had
54
int
m_contiguousFailedEvts
{0};
55
int
m_totalFailedEvts
{0};
56
// Keeps track of events already processed
57
int
m_nLocalCreatedEvts
{0};
58
int
m_nLocalSkippedEvts
{0};
59
int
m_nLocalFinishedEvts
{0};
60
61
public
:
63
MPIHiveEventLoopMgr
(
const
std::string&
name
, ISvcLocator* svcLoc);
65
virtual
~MPIHiveEventLoopMgr
();
67
virtual
StatusCode
initialize
()
override
;
69
virtual
StatusCode
finalize
()
override
;
71
virtual
StatusCode
nextEvent
(
int
maxevt)
override
;
72
73
private
:
75
UnsignedIntegerProperty
m_firstEventIndex
{
76
this
,
"FirstEventIndex"
, 0,
"First event index (Exec.SkipEvents)"
};
77
int
m_evtSelectorCurrentPos
= 0;
78
};
79
80
#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:255
AthenaHiveEventLoopMgr::AthenaHiveEventLoopMgr
AthenaHiveEventLoopMgr(const std::string &nam, ISvcLocator *svcLoc)
Standard Constructor.
Definition
AthenaHiveEventLoopMgr.cxx:64
MPIHiveEventLoopMgr::workerEventLoop
StatusCode workerEventLoop()
Worker event loop (runs on worker, requests events over MPI).
Definition
MPIHiveEventLoopMgr.cxx:207
MPIHiveEventLoopMgr::drainLocalScheduler
StatusCode drainLocalScheduler()
Drain the local scheduler of any (at least one) completed events.
Definition
MPIHiveEventLoopMgr.cxx:380
MPIHiveEventLoopMgr::m_contiguousFailedEvts
int m_contiguousFailedEvts
Definition
MPIHiveEventLoopMgr.h:54
MPIHiveEventLoopMgr::m_clusterSvc
ServiceHandle< IMPIClusterSvc > m_clusterSvc
Reference to the MPIClusterSvc.
Definition
MPIHiveEventLoopMgr.h:38
MPIHiveEventLoopMgr::m_totalFailedEvts
int m_totalFailedEvts
Definition
MPIHiveEventLoopMgr.h:55
MPIHiveEventLoopMgr::MPIHiveEventLoopMgr
MPIHiveEventLoopMgr(const std::string &name, ISvcLocator *svcLoc)
Standard Constructor.
Definition
MPIHiveEventLoopMgr.cxx:20
MPIHiveEventLoopMgr::finalize
virtual StatusCode finalize() override
implementation of IAppMgrUI::finalize
Definition
MPIHiveEventLoopMgr.cxx:37
MPIHiveEventLoopMgr::m_nLocalSkippedEvts
int m_nLocalSkippedEvts
Definition
MPIHiveEventLoopMgr.h:58
MPIHiveEventLoopMgr::m_nLocalCreatedEvts
int m_nLocalCreatedEvts
Definition
MPIHiveEventLoopMgr.h:57
MPIHiveEventLoopMgr::~MPIHiveEventLoopMgr
virtual ~MPIHiveEventLoopMgr()
Standard Destructor.
MPIHiveEventLoopMgr::m_nLocalFinishedEvts
int m_nLocalFinishedEvts
Definition
MPIHiveEventLoopMgr.h:59
MPIHiveEventLoopMgr::nextEvent
virtual StatusCode nextEvent(int maxevt) override
implementation of IAppMgrUI::nextEvent. maxevt==0 returns immediately
Definition
MPIHiveEventLoopMgr.cxx:43
MPIHiveEventLoopMgr::eventFinished
StatusCode eventFinished(const EventContext &ctx) override
Record completion and apply MPI's tolerated-failure thresholds.
Definition
MPIHiveEventLoopMgr.cxx:385
MPIHiveEventLoopMgr::masterEventLoop
StatusCode masterEventLoop(int maxEvt)
Master event loop (runs on master, provides events over MPI).
Definition
MPIHiveEventLoopMgr.cxx:61
MPIHiveEventLoopMgr::initialize
virtual StatusCode initialize() override
implementation of IAppMgrUI::initalize
Definition
MPIHiveEventLoopMgr.cxx:29
MPIHiveEventLoopMgr::insertEvent
StatusCode insertEvent(int eventIdx, bool &endOfStream, std::int64_t requestTime_ns)
Insert an event into the local scheduler.
Definition
MPIHiveEventLoopMgr.cxx:333
MPIHiveEventLoopMgr::m_firstEventIndex
UnsignedIntegerProperty m_firstEventIndex
Definition
MPIHiveEventLoopMgr.h:75
MPIHiveEventLoopMgr::m_evtSelectorCurrentPos
int m_evtSelectorCurrentPos
Definition
MPIHiveEventLoopMgr.h:77
ServiceHandle
Definition
ClusterMakerTool.h:36
Generated on
for ATLAS Offline Software by
1.17.0