QMCPACK / QMCPACK/qmcpack

If you want to add nested concurrency you must write a micro benchmark.

Open
#3,410 6 comments 0 reactions 0 assignees View on GitHub
discussion
Dominant language
C++
Stars
403
Forks
154
Avg merge
1d 12h
Merged PRs (30d)
82

Description

Even in new code I keep finding
`#pragma omp ...`
over loops that are 2 or 3 levels of omp concurrency down. I personally don't care a bit about the corner case of 1 walker per crowd, the entire flex_ optimization is a premature optimization that has no proven value.

Unless you can prove that this is useful in at least in a microbenchmark you should not do this. It's premature optimization and in general our only protection from data races is the hope that every access within this loop and anything it will call is dependant on the magical openmp iteration value. If you are not nested just use

These section also become annoying to debug because even when openmp is "off" its extra frames of crap show up at runtime.

**Describe the solution you'd like**
Less adhoc openmp. Less time wasted on premature optimization that make debugging, maintaining and enhancing code more difficult.

**Describe alternatives you've considered**
Ignoring this.

**Additional context**
Add any other context or screenshots about the feature request here.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.