Skip to content
Snippets Groups Projects

Add multithreading to CbmTaskUnpack and fix compiler errors on several systems

Merged Florian Uhlig requested to merge f.uhlig/cbmroot:fix_execution_stl into master

This MR adds simple multithreading to CbmTaskUnpack. It is meant as a starting point in this direction and to allow us to gain relevant experience.

A significant performance improvement is achieved by using std::sort with the std::execution::par_unseq parameter when time-sorting all digis in the end.

In addition, the components are processed in parallel, yielding another improvement. Here, the performance gains appear to be limited by the process of adding all digis to a common vector.

Further parallelization inside the components (i.e., on microslice level) is not yet attempted in this MR.

On the mFLES login node, the Unpack tasks runs at about 300 MB/s for our benchmark file.

bin/cbmreco_fairrun -i ~/tmp/1588_node8_1_0000.tsa -c ../reco/tasks/CbmRecoConfigExample.yaml
Edited by Florian Uhlig

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading