On tool shutdown (ompt_finalize_tool), the runtime should attempt to dispatch any outstanding events. Our tool, Score-P, does rely on this.
The NVHPC runtime, up to 22.11, does not dispatch events on worker threads. In particular, the events
for the last parallel region of the program and
Here is a reproducer for thread-end: events_not_dispatched.c (1.9 KB)
Compile and run like this:
$ nvc -fopenmp -mp=ompt events_not_dispatched.c && ./a.out
Expected output is (order not deterministic):
thread-begin @ tid 0 tid = 0 thread-begin @ tid 1 tid = 1 thread-end @ tid 0 thread-end @ tid 1
thread-begin @ tid 0 thread-begin @ tid 1 tid = 1 tid = 0 thread-end @ tid 0 a.out: events_not_dispatched.c:44: ompt_finalize: Assertion `worker_thread_end_dispatched' failed.
It would be nice to see the missing events in the next NVHPC release ;-)