Skip to content
GitLab
Projects Groups Snippets
  • /
  • 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 173
    • Merge requests 173
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Repository
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • atlasatlas
  • athenaathena
  • Merge requests
  • !23798

Fix thread-unsafety in Monopole code, G4mplEquationSetup class - Monopole MT ...

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Marilena Bandieramonte requested to merge mbandier/athena:master-Monopole-ThreadSafety into master May 29, 2019
  • Overview 11
  • Commits 2
  • Pipelines 2
  • Changes 2

Fix thread-unsafety in Monopole code, G4mplEquationSetup class - Monopole MT validation [ATLASSIM-4182]

G4mplEquationSetup class was implemented as a singleton, so it was not thread-safe. This affected MT simulation - with more than 1 thread: the simulation was aborted for illegal values of energy, momentum and/or time. Added the #ifdef G4MULTITHREADED directive to handle the multithreaded case. One instance of the class will be created per each thread and stored in a tbb::concurrent_unordered_map that is hashed with the threadID number.

This was tested in sequential and mt mode with 100 events, and now the simulation runs till the end. HITS comparison between sequential and mt runs, shows consistency of results.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: master-Monopole-ThreadSafety