Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • athena athena
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Jira
    • Jira
  • Merge requests 195
    • Merge requests 195
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • Code review
    • Issue
    • Repository
  • Activity
  • Graph
  • Commits
Collapse sidebar
  • atlas
  • athenaathena
  • Merge requests
  • !46435

Merged
Created Sep 10, 2021 by Tadej Novak@tadejDeveloper

Support executor substeps in transforms

  • Overview 10
  • Commits 1
  • Pipelines 2
  • Changes 21

For Run 3 we will need to smartly simulate and digitise jobs with 3 different beamspot sizes and pile-up profiles. This MR proposed an "executor substep" support for transforms, where the usual executor is split based on config.

A simple configuration function that returns number of steps and event fractions per step is needed, e.g.

def BeamspotSplitMC21a():
    """MC21a beamspot splitting configuration"""
    substeps = 3
    event_fractions = [0.3, 0.3, 0.4]

    return substeps, event_fractions

Everything else is handled by individual transforms/skeletons. This configuration fragment is passed to the transform like --splitConfig 'HITtoRDO:Campaigns.BeamspotSplitMC21a'.

If number of substeps is larger than one (the trivial case is "useless"), then both executor steps (the execution graph) and executors (the actual steering of athena) are cloned and suffixed with ExecutorStep{i}. Each executor also knows its step index and the total number of steps. This and the config is also exposed to the Athena job in runArgs.

Each step runs as usual (but merging is never done, even with MP). After final steps all outputs (serial or MP) are merged only once.

Pile-up profile has an additional step entry that is used to filter. Sequential event numbering has also been enhanced to take into account total job size and local skip events.

/cc @jchapman @mduehrss @tlari @ssnyder @tsulaia

Edited Sep 14, 2021 by Tadej Novak
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: pileup/run3exec