Add configure-time CELERITAS_OPENMP
switch to change threading
#1222
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Event-level OpenMP was added in #774 to more accurately represent the behavior of Geant4 integration. Unfortunately we found that OpenMP isn't up to the task of efficiently threading both track-parallel and event-parallel (see also #1073). This adds a configure option to switch between track-level parallelism (inside a kernel) and event-level (for now, only in celer-sim). Since track-level parallelism isn't ideal for CPU (striding, integration, etc.) the default is set to event-level, and furthermore a warning is emitted at configure time if track-level parallelism is enabled alongside Geant4 MT (see #1056).
Supersedes #1220