Page MenuHomeHEPForge

Fix FSR initialisation for thread safety
ClosedPublic

Authored by abudinen on Jul 2 2024, 6:08 PM.

Details

Summary

Ensure Sherpa is initialised only once and mutex calls to its Soft_Photon_Handler.

Rearrange initialisation of PHOTOS to mirror Sherpa.

These are modifications to the Sherpa interface to ensure that it is thread safe.
The Sherpa initialisation is not thread safe and forces us to create a global static object and mutexing wherever it is used. We have to make sure that we initialise the Sherpa instance only once and also initialise all interface class members for each thread.
The structural changes done for the Sherpa interface have been propagated to the PHOTOS interface for consistency.

This is related with !28 and T168.

Test Plan

Results with master branch are identical for Sherpa's Photons and for PHOTOS.

Diff Detail

Repository
rEVTGEN evtgen
Branch
thread_safety_FSR
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 331
Build 331: arc lint + arc unit

Event Timeline

abudinen created this revision.

These changes were developed together with @kreps and @tlatham. So we leave to @jback to do the review.

This revision is now accepted and ready to land.Jul 4 2024, 11:35 AM
abudinen changed the visibility from "All Users" to "Public (No Login Required)".Sep 10 2024, 6:12 PM
abudinen changed the edit policy from "All Users" to "Restricted Project (Project)".
abudinen added a project: Restricted Project.