diff options
Diffstat (limited to 'openmp/runtime/test/ompt/callback.h')
-rw-r--r-- | openmp/runtime/test/ompt/callback.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/openmp/runtime/test/ompt/callback.h b/openmp/runtime/test/ompt/callback.h new file mode 100644 index 00000000000..f92d50ae32e --- /dev/null +++ b/openmp/runtime/test/ompt/callback.h @@ -0,0 +1,80 @@ +#include <stdio.h> +#include <inttypes.h> +#include <ompt.h> + +static ompt_get_thread_id_t ompt_get_thread_id; + +static void +on_ompt_event_barrier_begin( + ompt_parallel_id_t parallel_id, + ompt_task_id_t task_id) +{ + printf("%" PRIu64 ": ompt_event_barrier_begin: parallel_id=%" PRIu64 ", task_id=%" PRIu64 "\n", ompt_get_thread_id(), parallel_id, task_id); +} + +static void +on_ompt_event_barrier_end( + ompt_parallel_id_t parallel_id, + ompt_task_id_t task_id) +{ + printf("%" PRIu64 ": ompt_event_barrier_end: parallel_id=%" PRIu64 ", task_id=%" PRIu64 "\n", ompt_get_thread_id(), parallel_id, task_id); +} + +static void +on_ompt_event_implicit_task_begin( + ompt_parallel_id_t parallel_id, + ompt_task_id_t task_id) +{ + printf("%" PRIu64 ": ompt_event_implicit_task_begin: parallel_id=%" PRIu64 ", task_id=%" PRIu64 "\n", ompt_get_thread_id(), parallel_id, task_id); +} + +static void +on_ompt_event_implicit_task_end( + ompt_parallel_id_t parallel_id, + ompt_task_id_t task_id) +{ + printf("%" PRIu64 ": ompt_event_implicit_task_end: parallel_id=%" PRIu64 ", task_id=%" PRIu64 "\n", ompt_get_thread_id(), parallel_id, task_id); +} + +static void +on_ompt_event_parallel_begin( + ompt_task_id_t parent_task_id, + ompt_frame_t *parent_task_frame, + ompt_parallel_id_t parallel_id, + uint32_t requested_team_size, + void *parallel_function, + ompt_invoker_t invoker) +{ + printf("%" PRIu64 ": ompt_event_parallel_begin: parent_task_id=%" PRIu64 ", parent_task_frame=%p, parallel_id=%" PRIu64 ", requested_team_size=%" PRIu32 ", parallel_function=%p, invoker=%d\n", ompt_get_thread_id(), parent_task_id, parent_task_frame, parallel_id, requested_team_size, parallel_function, invoker); +} + +static void +on_ompt_event_parallel_end( + ompt_parallel_id_t parallel_id, + ompt_task_id_t task_id, + ompt_invoker_t invoker) +{ + printf("%" PRIu64 ": ompt_event_parallel_end: parallel_id=%" PRIu64 ", task_id=%" PRIu64 ", invoker=%d\n", ompt_get_thread_id(), parallel_id, task_id, invoker); +} + + +void ompt_initialize( + ompt_function_lookup_t lookup, + const char *runtime_version, + unsigned int ompt_version) +{ + ompt_set_callback_t ompt_set_callback = (ompt_set_callback_t) lookup("ompt_set_callback"); + ompt_get_thread_id = (ompt_get_thread_id_t) lookup("ompt_get_thread_id"); + + ompt_set_callback(ompt_event_barrier_begin, (ompt_callback_t) &on_ompt_event_barrier_begin); + ompt_set_callback(ompt_event_barrier_end, (ompt_callback_t) &on_ompt_event_barrier_end); + ompt_set_callback(ompt_event_implicit_task_begin, (ompt_callback_t) &on_ompt_event_implicit_task_begin); + ompt_set_callback(ompt_event_implicit_task_end, (ompt_callback_t) &on_ompt_event_implicit_task_end); + ompt_set_callback(ompt_event_parallel_begin, (ompt_callback_t) &on_ompt_event_parallel_begin); + ompt_set_callback(ompt_event_parallel_end, (ompt_callback_t) &on_ompt_event_parallel_end); +} + +ompt_initialize_t ompt_tool() +{ + return &ompt_initialize; +} |