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 170
    • Merge requests 170
  • 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
  • !49230

Merged
Created Dec 17, 2021 by Goetz Gaycken@goetzDeveloper

Reduce number of mutex locks during Si track finding, clusterization, ambiguity resolution (and monitoring)

  • Overview 199
  • Commits 16
  • Pipelines 17
  • Changes 117

The Si track finder currently locks mutexes O(5k) times per event. This happens mostly during SCT and pixel conditions access. This patch precomputes the Pixel and SCT module status, which allows to apply the locks only once. The number of mutex locks is reduced to O(50) per event. This could improve the scaling behaviour of the reconstruction as a function of the number of threads. These precomputed module status objects are used in several other algorithms and tools. The number of locks are significantly reduced in the SCT_Clusterization but also PixelAthErrorMonAlg, PixelClusterization, TrkAmbiguitySolver.

To efficiently precompute the pixel and SCT status arrays the original conditions summary tools are extended to allow the computation of the status for all modules, chips, (strips) with a single call, rather than calling them for each module, chip and SCT strip.

The original status queries via the pixel and SCT conditions summary tools are still available and are used if the read handles for the precomputed status arrays are left empty in the corresponding tools and algorithms. For the recexcommon based reconstruction the status arrays would be used instead of the conditions summary tools.

In future improvement the SCT and Pixel conditions algorithms could be tailored to produce conditions data more suitable for the new algorithm which creates the combined module status from the bytestream errors and the conditions data. The status array computation could be split in a conditions algorithm and an event algorithm. The conditions algorithm would compute the status arrays from conditions data only, and the event algorithm would create combined status errors using the status conditions data and the error information of the byte stream error.

Edited Apr 04, 2022 by Goetz Gaycken
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: SiSPSeededTrackFinder_master_reduce_number_mutex_locks