Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions PWGDQ/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,29 @@ o2physics_add_library(PWGDQCore
#
# Skipped under recc, which caches compilations remotely instead.
add_library(DQAnalysisPCH OBJECT dqAnalysisPCH.cxx)
# The PCH compile is one of the heaviest translation units in the tree -- it
# instantiates the whole data model up front -- but add_library() does not put
# it in the 'analysis' job pool that o2physics_add_dpl_workflow() uses for the
# workflows. Left out, it runs unthrottled alongside the pooled compilations
# and defeats the per-job memory budget the pool exists to enforce.
set_property(TARGET DQAnalysisPCH PROPERTY JOB_POOL_COMPILE analysis)
target_link_libraries(DQAnalysisPCH PUBLIC O2::Framework O2Physics::AnalysisCore O2Physics::PWGDQCore)
if(NOT DEFINED ENV{USE_RECC})
target_precompile_headers(DQAnalysisPCH PRIVATE
# Framework baseline -- same set AnalysisPCH precompiles. A target with
# REUSE_FROM uses ONLY this PCH, so anything left out here is parsed from
# scratch by every consumer: without this block these workflows precompile
# LESS than the default carrier they opted out of.
<Framework/ASoA.h>
<Framework/AnalysisDataModel.h>
<Framework/AnalysisHelpers.h>
<Framework/AnalysisTask.h>
<Framework/ConfigContext.h>
<Framework/Configurable.h>
<Framework/DataProcessorSpec.h>
<Framework/HistogramRegistry.h>
<Framework/HistogramSpec.h>
<Framework/InitContext.h>
[["PWGDQ/DataModel/ReducedInfoTables.h"]] # 65%
[["PWGDQ/Core/VarManager.h"]] # 65%, ~8000 lines
)
Expand Down
6 changes: 6 additions & 0 deletions PWGDQ/Tasks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@
#
# Skipped under recc, which caches compilations remotely instead.
add_library(TableReaderWithAssocPCH OBJECT tableReaderWithAssocPCH.cxx)
# The PCH compile is one of the heaviest translation units in the tree -- it
# instantiates the whole data model up front -- but add_library() does not put
# it in the 'analysis' job pool that o2physics_add_dpl_workflow() uses for the
# workflows. Left out, it runs unthrottled alongside the pooled compilations
# and defeats the per-job memory budget the pool exists to enforce.
set_property(TARGET TableReaderWithAssocPCH PROPERTY JOB_POOL_COMPILE analysis)
target_link_libraries(TableReaderWithAssocPCH PUBLIC O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::PWGDQCore O2Physics::MLCore)
if(NOT DEFINED ENV{USE_RECC})
target_precompile_headers(TableReaderWithAssocPCH PRIVATE
Expand Down
22 changes: 21 additions & 1 deletion PWGHF/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,37 @@ o2physics_add_library(HfMlCore

# Precompiled header shared across PWGHF. Percentages are the share of the
# group's workflow translation units that include the header, measured over the tree.
# D2H already has its own carrier (D2HReducedPCH); those targets keep it.
# The D2H reduced-data-model workflows share this carrier too.
#
# runDataProcessing.h is deliberately NOT precompiled: it requires each workflow's
# customize() to be declared before it is included, so precompiling it silently
# unregisters every option (the binary aborts at --dump-workflow, but links fine).
#
# Skipped under recc, which caches compilations remotely instead.
add_library(HfCandidatesPCH OBJECT hfCandidatesPCH.cxx)
# The PCH compile is one of the heaviest translation units in the tree -- it
# instantiates the whole data model up front -- but add_library() does not put
# it in the 'analysis' job pool that o2physics_add_dpl_workflow() uses for the
# workflows. Left out, it runs unthrottled alongside the pooled compilations
# and defeats the per-job memory budget the pool exists to enforce.
set_property(TARGET HfCandidatesPCH PROPERTY JOB_POOL_COMPILE analysis)
target_link_libraries(HfCandidatesPCH PUBLIC O2::Framework O2Physics::AnalysisCore)
if(NOT DEFINED ENV{USE_RECC})
target_precompile_headers(HfCandidatesPCH PRIVATE
# Framework baseline -- same set AnalysisPCH precompiles. A target with
# REUSE_FROM uses ONLY this PCH, so anything left out here is parsed from
# scratch by every consumer: without this block these workflows precompile
# LESS than the default carrier they opted out of.
<Framework/ASoA.h>
<Framework/AnalysisDataModel.h>
<Framework/AnalysisHelpers.h>
<Framework/AnalysisTask.h>
<Framework/ConfigContext.h>
<Framework/Configurable.h>
<Framework/DataProcessorSpec.h>
<Framework/HistogramRegistry.h>
<Framework/HistogramSpec.h>
<Framework/InitContext.h>
[["PWGHF/DataModel/CandidateReconstructionTables.h"]] # 78%, 2479 lines
[["PWGHF/DataModel/CandidateSelectionTables.h"]] # 72%
[["Common/Core/RecoDecay.h"]] # 65%, 1523 lines
Expand Down
14 changes: 0 additions & 14 deletions PWGHF/D2H/Core/d2hReducedPCH.cxx

This file was deleted.

20 changes: 20 additions & 0 deletions PWGJE/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,29 @@ endif()
#
# Skipped under recc, which caches compilations remotely instead.
add_library(JetDataModelPCH OBJECT jetDataModelPCH.cxx)
# The PCH compile is one of the heaviest translation units in the tree -- it
# instantiates the whole data model up front -- but add_library() does not put
# it in the 'analysis' job pool that o2physics_add_dpl_workflow() uses for the
# workflows. Left out, it runs unthrottled alongside the pooled compilations
# and defeats the per-job memory budget the pool exists to enforce.
set_property(TARGET JetDataModelPCH PROPERTY JOB_POOL_COMPILE analysis)
target_link_libraries(JetDataModelPCH PUBLIC O2::Framework O2Physics::AnalysisCore O2Physics::PWGJECore)
if(NOT DEFINED ENV{USE_RECC})
target_precompile_headers(JetDataModelPCH PRIVATE
# Framework baseline -- same set AnalysisPCH precompiles. A target with
# REUSE_FROM uses ONLY this PCH, so anything left out here is parsed from
# scratch by every consumer: without this block these workflows precompile
# LESS than the default carrier they opted out of.
<Framework/ASoA.h>
<Framework/AnalysisDataModel.h>
<Framework/AnalysisHelpers.h>
<Framework/AnalysisTask.h>
<Framework/ConfigContext.h>
<Framework/Configurable.h>
<Framework/DataProcessorSpec.h>
<Framework/HistogramRegistry.h>
<Framework/HistogramSpec.h>
<Framework/InitContext.h>
[["PWGJE/DataModel/Jet.h"]] # 90%
)
endif()
12 changes: 12 additions & 0 deletions PWGJE/Tasks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.
add_library(JetSubstructureHFPCH OBJECT jetSubstructureHFPCH.cxx)
# The PCH compile is one of the heaviest translation units in the tree -- it
# instantiates the whole data model up front -- but add_library() does not put
# it in the 'analysis' job pool that o2physics_add_dpl_workflow() uses for the
# workflows. Left out, it runs unthrottled alongside the pooled compilations
# and defeats the per-job memory budget the pool exists to enforce.
set_property(TARGET JetSubstructureHFPCH PROPERTY JOB_POOL_COMPILE analysis)
target_link_libraries(JetSubstructureHFPCH
PUBLIC O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore)
if(NOT DEFINED ENV{USE_RECC})
Expand All @@ -29,6 +35,12 @@ target_precompile_headers(JetSubstructureHFPCH PRIVATE
endif()

add_library(JetSubstructureHFOutputPCH OBJECT jetSubstructureHFOutputPCH.cxx)
# The PCH compile is one of the heaviest translation units in the tree -- it
# instantiates the whole data model up front -- but add_library() does not put
# it in the 'analysis' job pool that o2physics_add_dpl_workflow() uses for the
# workflows. Left out, it runs unthrottled alongside the pooled compilations
# and defeats the per-job memory budget the pool exists to enforce.
set_property(TARGET JetSubstructureHFOutputPCH PROPERTY JOB_POOL_COMPILE analysis)
target_link_libraries(JetSubstructureHFOutputPCH
PUBLIC O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore)
if(NOT DEFINED ENV{USE_RECC})
Expand Down
Loading