adamtuft/otter

Add mechanism for reporting callback availability

Closed this issue · 2 comments

Want a mechanism for reporting availability of all defined callbacks (return code of ompt_set_callback - see table 4.2 in OpenMP 5.0)

  • driven by environment variable
  • report runtime in use + OpenMP version

Hi @iamholger - I've implemented this with commit 9c42228

To enable the feature, define the environment variable OTTER_REPORT_CALLBACKS before invoking Otter. I get the following output in stderr:

LLVM OMP version: 5.0.20140926, OMP v. 201611
...
Return codes from ompt_set_callback:
Event                            | Availability
ompt_callback_thread_begin       | ompt_set_always (5)
ompt_callback_thread_end         | ompt_set_always (5)
ompt_callback_parallel_begin     | ompt_set_always (5)
ompt_callback_parallel_end       | ompt_set_always (5)
ompt_callback_task_create        | ompt_set_always (5)
ompt_callback_task_schedule      | ompt_set_always (5)
ompt_callback_implicit_task      | ompt_set_always (5)
ompt_callback_target             | ompt_set_never  (1)
ompt_callback_target_data_op     | ompt_set_never  (1)
ompt_callback_target_submit      | ompt_set_never  (1)
ompt_callback_control_tool       | ompt_set_always (5)
ompt_callback_device_initialize  | ompt_set_never  (1)
ompt_callback_device_finalize    | ompt_set_never  (1)
ompt_callback_device_load        | ompt_set_never  (1)
ompt_callback_device_unload      | ompt_set_never  (1)
ompt_callback_sync_region_wait   | ompt_set_always (5)
ompt_callback_mutex_released     | ompt_set_always (5)
ompt_callback_dependences        | ompt_set_always (5)
ompt_callback_task_dependence    | ompt_set_always (5)
ompt_callback_work               | ompt_set_always (5)
ompt_callback_master             | ompt_set_always (5)
ompt_callback_target_map         | ompt_set_never  (1)
ompt_callback_sync_region        | ompt_set_always (5)
ompt_callback_lock_init          | ompt_set_always (5)
ompt_callback_lock_destroy       | ompt_set_always (5)
ompt_callback_mutex_acquire      | ompt_set_always (5)
ompt_callback_mutex_acquired     | ompt_set_always (5)
ompt_callback_nest_lock          | ompt_set_always (5)
ompt_callback_flush              | ompt_set_always (5)
ompt_callback_cancel             | ompt_set_always (5)
ompt_callback_reduction          | ompt_set_always (5)
ompt_callback_dispatch           | ompt_set_never  (1)