diff --git a/Trigger/TrigAccel/TrigGpuTest/test/test_trigGPU_P1_ID_calo_v1PhysP1_grid.py b/Trigger/TrigAccel/TrigGpuTest/test/test_trigGPU_P1_ID_calo_v1PhysP1_grid.py new file mode 100755 index 0000000000000000000000000000000000000000..9b74de8213cd013beafb093e9cfe90277774d8dc --- /dev/null +++ b/Trigger/TrigAccel/TrigGpuTest/test/test_trigGPU_P1_ID_calo_v1PhysP1_grid.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration + +# art-description: Trigger athenaHLT test of the PhysicsP1_pp_run3_v1 menu +# art-type: grid +# art-include: main/Athena +# art-include: 24.0/Athena +# art-athena-mt: 4 +# art-architecture: '#&nvidia' +# art-output: *.txt +# art-output: *.log +# art-output: log.* +# art-output: *.out +# art-output: *.err +# art-output: *.log.tar.gz +# art-output: *.new +# art-output: *.json +# art-output: *.root +# art-output: *.pmon.gz +# art-output: *perfmon* +# art-output: prmon* +# art-output: *.check* + +from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps + +ex = ExecStep.ExecStep() +ex.type = 'athenaHLT' +ex.job_options = 'TriggerJobOpts.runHLT' +ex.input = 'data' +ex.threads = 4 +ex.concurrent_events = 1 +ex.flags = ['Trigger.InDetTracking.doGPU=True', 'CaloRecGPU.GlobalFlags.UseCaloRecGPU=True', 'Trigger.triggerMenuSetup="PhysicsP1_pp_run3_v1_HLTReprocessing_prescale"', + 'Trigger.doLVL1=True'] + +test = Test.Test() +test.art_type = 'grid' +test.exec_steps = [ex] +test.check_steps = CheckSteps.default_check_steps(test) + +import sys +sys.exit(test.run()) diff --git a/Trigger/TrigAccel/TrigGpuTest/test/test_trigGPU_P1_ID_v1PhysP1_grid.py b/Trigger/TrigAccel/TrigGpuTest/test/test_trigGPU_P1_ID_v1PhysP1_grid.py new file mode 100755 index 0000000000000000000000000000000000000000..ffaba90480fc017572929215a0e82d63f33b87a2 --- /dev/null +++ b/Trigger/TrigAccel/TrigGpuTest/test/test_trigGPU_P1_ID_v1PhysP1_grid.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration + +# art-description: Trigger athenaHLT test of the PhysicsP1_pp_run3_v1 menu +# art-type: grid +# art-include: main/Athena +# art-include: 24.0/Athena +# art-athena-mt: 4 +# art-architecture: '#&nvidia' +# art-output: *.txt +# art-output: *.log +# art-output: log.* +# art-output: *.out +# art-output: *.err +# art-output: *.log.tar.gz +# art-output: *.new +# art-output: *.json +# art-output: *.root +# art-output: *.pmon.gz +# art-output: *perfmon* +# art-output: prmon* +# art-output: *.check* + +from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps + +ex = ExecStep.ExecStep() +ex.type = 'athenaHLT' +ex.job_options = 'TriggerJobOpts.runHLT' +ex.input = 'data' +ex.threads = 4 +ex.concurrent_events = 1 +ex.flags = ['Trigger.InDetTracking.doGPU=True','Trigger.triggerMenuSetup="PhysicsP1_pp_run3_v1_HLTReprocessing_prescale"', + 'Trigger.doLVL1=True'] + +test = Test.Test() +test.art_type = 'grid' +test.exec_steps = [ex] +test.check_steps = CheckSteps.default_check_steps(test) + +import sys +sys.exit(test.run()) diff --git a/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/CMakeLists.txt b/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/CMakeLists.txt index cc3a2f0f03540d3ce4c36d4c96131c7a47ee25bd..04619c48fec500ca6eae84e09b9d7b9959b6b8e6 100644 --- a/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/CMakeLists.txt +++ b/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/CMakeLists.txt @@ -17,8 +17,8 @@ atlas_add_library( TrigInDetAccelerationServiceLib src/*.cxx PUBLIC_HEADERS TrigInDetAccelerationService INCLUDE_DIRS ${TBB_INCLUDE_DIRS} - LINK_LIBRARIES AthenaKernel GaudiKernel AthenaBaseComps StoreGateLib InDetIdentifier PixelReadoutGeometryLib SCT_ReadoutGeometry TrigAccelEvent ${TBB_LIBRARIES} rt dl) + LINK_LIBRARIES AthenaKernel GaudiKernel AthenaBaseComps AthenaInterprocess StoreGateLib InDetIdentifier PixelReadoutGeometryLib SCT_ReadoutGeometry TrigAccelEvent ${TBB_LIBRARIES} rt dl) atlas_add_component( TrigInDetAccelerationService src/components/*.cxx - LINK_LIBRARIES TrigInDetAccelerationServiceLib AthenaKernel GaudiKernel AthenaBaseComps StoreGateLib TrigAccelEvent ${TBB_LIBRARIES} rt dl) + LINK_LIBRARIES TrigInDetAccelerationServiceLib AthenaKernel GaudiKernel AthenaInterprocess AthenaBaseComps StoreGateLib TrigAccelEvent ${TBB_LIBRARIES} rt dl) diff --git a/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/src/TrigInDetAccelerationSvc.cxx b/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/src/TrigInDetAccelerationSvc.cxx index a25bab74eedb83d04169435bcd5a14795694428b..e1b7445a000c46cbf2147fc3103f994f66f89e08 100644 --- a/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/src/TrigInDetAccelerationSvc.cxx +++ b/Trigger/TrigAccel/TrigInDetAccel/TrigInDetAccelerationService/src/TrigInDetAccelerationSvc.cxx @@ -15,6 +15,8 @@ #include "TrigAccelEvent/TrigInDetAccelEDM.h" #include "TrigAccelEvent/TrigITkAccelEDM.h" #include "CxxUtils/checker_macros.h" +#include "AthenaInterprocess/Incidents.h" +#include "GaudiKernel/ConcurrencyFlags.h" #include <dlfcn.h> @@ -102,13 +104,20 @@ StatusCode TrigInDetAccelerationSvc::initialize() { /* * Ask to be informed at the beginning of a new run so that we * can collect geometry, conditions, etc. and copy them to on-GPU data structures + * For athenaHLT this should be UpdateAfterFork */ - IIncidentSvc* incsvc; - StatusCode sc = service("IncidentSvc", incsvc); - int priority = 100; - if( sc.isSuccess() ) { - incsvc->addListener( this, "BeginRun", priority); + IIncidentSvc* incsvc; + StatusCode sc = service("IncidentSvc", incsvc); + int priority = 100; + if( sc.isSuccess() ) { + const bool is_multiprocess = (Gaudi::Concurrency::ConcurrencyFlags::numProcs() > 0); + if (is_multiprocess) { + incsvc->addListener( this, AthenaInterprocess::UpdateAfterFork::type(), priority); + } + else { + incsvc->addListener( this, "BeginRun", priority); + } } return StatusCode::SUCCESS;