llnl / llnl/RAJAPerf

OpenMP user-defined reductions not support by NVHPC yet

Open
#176 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

openmp
Dominant language
Jupyter Notebook
Stars
135
Forks
55
Avg merge
4d 16h
Merged PRs (30d)
5

Description

NVHPC 21.5 does not support user-defined reductions from OpenMP 5.0.

I have a fix and will submit the pull request soon.

```
[ 48%] Building CXX object src/lcals/CMakeFiles/lcals.dir/FIRST_MIN-OMP.cpp.o
"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 39: error: this OpenMP construct is not supported in NVIDIA subset: declare reduction for user defined reductions
#pragma omp declare reduction(minloc : MyMinLoc : \
^

"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 39: error: invalid text in pragma
#pragma omp declare reduction(minloc : MyMinLoc : \
^

"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 44: error: invalid text in pragma
#pragma omp parallel for reduction(minloc:mymin)
^

"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 44: error: invalid text in pragma
#pragma omp parallel for reduction(minloc:mymin)
^

"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 66: error: this OpenMP construct is not supported in NVIDIA subset: declare reduction for user defined reductions
#pragma omp declare reduction(minloc : MyMinLoc : \
^

"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 66: error: invalid text in pragma
#pragma omp declare reduction(minloc : MyMinLoc : \
^

"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 71: error: invalid text in pragma
#pragma omp parallel for reduction(minloc:mymin)
^

"/local/jehammond/RAJA/perf/src/lcals/FIRST_MIN-OMP.cpp", line 71: error: invalid text in pragma
#pragma omp parallel for reduction(minloc:mymin)
^

```

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/lcals/FIRST_MIN-OMP.cpp, especially the user-defined reduction pragmas reported by NVHPC 21.5. Reproduce the compiler diagnostics and review the existing reduction usage; done means the FIRST_MIN OpenMP source builds successfully with that compiler and the reduction behavior remains correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.