Make combine v9.1.0 the default, customize workspace performance flags
This PR contains two things:
- It makes combine v9.1.0 the default version as it is the recommended version since recently.
- Certain flags added to the workspace creation for performance reasons are optional now. More details below.
Details on performance flags
CreateWorkspace
is running with 5 flags that increase the performance of limit and likelihood computations:
--optimize-simpdf-constraints cms
, --X-pack-asympows
, --X-optimizeMHDependency fixed
, --use-histsum
, and --no-wrappers`.
Observations:
- There are two things that make the limits fast:
--optimize-simpdf-constraints cms
and--use-histsum --no-wrappers
. Each of them accounts for about 50% of the performance boost. - There is no issue with
--optimize-simpdf-constraints cms
whatsoever, so it should be always safe to use that one. -
--use-histsum
and--no-wrappers
always have to be used together. When used alone, each of them leads to failures (either already in text2workspace.py or Segfaults in combine). -
--X-optimizeMHDependency fixed
only works when both--use-histsum
and--no-wrappers
are enabled, but it doesn't increase the performance on top of these two any further. -
--X-pack-asympows
works when used alone, but not when--optimize-simpdf-constraints cms
is enabled, unless--use-histsum
is set. -
But most importantly: when
--use-histsum --no-wrappers
is set, the result of FitDiagnostics is unusable as it's missing all per-channel info and postfit histograms are collapsed to single bins.
Actions:
- We can safely add
--optimize-simpdf-constraints cms
. It makes things faster and doesn't break anything. - Per default, none any of the other flags should be enabled as users will run into issues with FitDiagnostics, which they will most likely always need.
- However, there is an
--optimize-limits
flag in CreateWorkspace now that adds the additional four flags. - In the combination, we can always set this flag to True by default. This can also be done conveniently with an env variable DHI_WORKSPACE_OPTIMIZE_LIMITS=1 so that nothing changes for the workflows there.
- One should just keep in mind that FitDiagnostics won't work and in case it's needed, one needs to have a second set of workspaces created with
--optimize-limits False
.