Skip to content
Snippets Groups Projects
Commit 8d15f280 authored by Vakhtang Tsulaia's avatar Vakhtang Tsulaia
Browse files

A few fixes for the hybrid MP+MT mode

1. Dropped the ReloadProxies incident. This incident was triggering condition callbacks
in hybrid workers just after fork, which was immediately resulting in crash.

2. Enabled hybrid MP+MT mode in Job Transforms
parent 16dcd668
No related branches found
No related tags found
No related merge requests found
...@@ -415,8 +415,6 @@ SharedHiveEvtQueueConsumer::bootstrap_func() ...@@ -415,8 +415,6 @@ SharedHiveEvtQueueConsumer::bootstrap_func()
// ___________________ Fire UpdateAfterFork incident _________________ // ___________________ Fire UpdateAfterFork incident _________________
p_incidentSvc->fireIncident(AthenaInterprocess::UpdateAfterFork(m_rankId,getpid(),name())); p_incidentSvc->fireIncident(AthenaInterprocess::UpdateAfterFork(m_rankId,getpid(),name()));
p_incidentSvc->fireIncident(Incident(name(),"ReloadProxies"));
// Declare success and return // Declare success and return
*(int*)(outwork->data) = 0; *(int*)(outwork->data) = 0;
return outwork; return outwork;
......
...@@ -63,7 +63,6 @@ IncidentSvc DEBUG Adding [BeginEvent] listener 'ConditionStore' with pri ...@@ -63,7 +63,6 @@ IncidentSvc DEBUG Adding [BeginEvent] listener 'ConditionStore' with pri
IncidentSvc DEBUG Adding [BeginEvent] listener 'ToolSvc.IOVSvcTool' with priority 100 IncidentSvc DEBUG Adding [BeginEvent] listener 'ToolSvc.IOVSvcTool' with priority 100
IncidentSvc DEBUG Adding [BeginRun] listener 'ToolSvc.IOVSvcTool' with priority 100 IncidentSvc DEBUG Adding [BeginRun] listener 'ToolSvc.IOVSvcTool' with priority 100
ToolSvc.IOVSvcTool INFO IOVRanges will be checked at every Event ToolSvc.IOVSvcTool INFO IOVRanges will be checked at every Event
IncidentSvc DEBUG Adding [ReloadProxies] listener 'ToolSvc.IOVSvcTool' with priority 100
ToolSvc.IOVSvcTool DEBUG Tool initialized ToolSvc.IOVSvcTool DEBUG Tool initialized
ClassIDSvc INFO getRegistryEntries: read 372 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 372 CLIDRegistry entries for module ALL
ToolSvc.IOVSvcTool DEBUG registering proxy [Dooo:6666/old] at 0x2309460 ToolSvc.IOVSvcTool DEBUG registering proxy [Dooo:6666/old] at 0x2309460
......
...@@ -216,9 +216,6 @@ IOVSvcTool::initialize() { ...@@ -216,9 +216,6 @@ IOVSvcTool::initialize() {
msg() << "IOV Data will be preloaded at the same interval" << endmsg; msg() << "IOV Data will be preloaded at the same interval" << endmsg;
} }
// For hybrid MP/MT
p_incSvc->addListener( this, "ReloadProxies", pri, true);
ATH_MSG_DEBUG("Tool initialized"); ATH_MSG_DEBUG("Tool initialized");
return StatusCode::SUCCESS; return StatusCode::SUCCESS;
...@@ -236,11 +233,6 @@ IOVSvcTool::handle(const Incident &inc) { ...@@ -236,11 +233,6 @@ IOVSvcTool::handle(const Incident &inc) {
bool first = m_first; bool first = m_first;
// hybrid MP/MT: need to reload everything after workers fork
if (inc.type() == "ReloadProxies") {
m_resetAllCallbacks = true;
}
// Don't bother doing anything if we're handled the first run, and // Don't bother doing anything if we're handled the first run, and
// preLoadData has been set, or if we only want to check once at the // preLoadData has been set, or if we only want to check once at the
// beginning of the job // beginning of the job
......
...@@ -955,14 +955,8 @@ class athenaExecutor(scriptExecutor): ...@@ -955,14 +955,8 @@ class athenaExecutor(scriptExecutor):
msg.info('input event count is UNDEFINED, setting expectedEvents to 0') msg.info('input event count is UNDEFINED, setting expectedEvents to 0')
expectedEvents = 0 expectedEvents = 0
# Check the consistency of parallel configuration: CLI flags + evnironment # Check the consistency of parallel configuration: CLI flags + evnironment.
# 1. Both --multithreaded and --multiprocess flags have been set # At least one of the parallel command-line flags has been provided but ATHENA_CORE_NUMBER environment has not been set
if ('multithreaded' in self.conf._argdict and
'multiprocess' in self.conf._argdict):
raise trfExceptions.TransformExecutionException(trfExit.nameToCode('TRF_SETUP'),
'both --multithreaded and --multiprocess command line options provided. Please use only one of them')
# 2. One of the parallel command-line flags has been provided but ATHENA_CORE_NUMBER environment has not been set
if (('multithreaded' in self.conf._argdict or 'multiprocess' in self.conf._argdict) and if (('multithreaded' in self.conf._argdict or 'multiprocess' in self.conf._argdict) and
('ATHENA_CORE_NUMBER' not in os.environ)): ('ATHENA_CORE_NUMBER' not in os.environ)):
raise trfExceptions.TransformExecutionException(trfExit.nameToCode('TRF_SETUP'), raise trfExceptions.TransformExecutionException(trfExit.nameToCode('TRF_SETUP'),
...@@ -974,12 +968,6 @@ class athenaExecutor(scriptExecutor): ...@@ -974,12 +968,6 @@ class athenaExecutor(scriptExecutor):
# Try to detect AthenaMP mode and number of workers # Try to detect AthenaMP mode and number of workers
self._athenaMP = detectAthenaMPProcs(self.conf.argdict,self.name) self._athenaMP = detectAthenaMPProcs(self.conf.argdict,self.name)
# Another constistency check: make sure we don't have a configuration like follows:
# ... --multithreaded --athenaopts=--nprocs=N
if (self.name != 'BSRDOtoRAW' and self._athenaMT != 0 and self._athenaMP != 0):
raise trfExceptions.TransformExecutionException(trfExit.nameToCode('TRF_SETUP'),
'transform configured to run Athena in both MT and MP modes. Only one parallel mode at a time must be used')
if self._disableMP: if self._disableMP:
self._athenaMP = 0 self._athenaMP = 0
else: else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment