|
  PAPIC:PAPI thread init.3
| |
ViewsFrom PAPIDocs
NAME
SynopsisC Interface #include papi.h int PAPI_thread_init (unsigned long int (* handle )()); Fortran Interface #include fpapi.h PAPIF_thread_init(C_INT FUNCTION handle, C_INT check ) DescriptionPAPI_thread_init initializes thread support in the PAPI library. Applications that make no use of threads do not need to call this routine. This function MUST return a UNIQUE thread ID for every new thread/LWP created. The OpenMP call omp_get_thread_num() violates this rule, as the underlying LWPs may have been killed off by the run-time system or by a call to omp_set_num_threads() . In that case, it may still possible to use omp_get_thread_num() in conjunction with PAPI_unregister_thread() when the OpenMP thread has finished. However it is much better to use the underlying thread subsystem's call, which is pthread_self() on Linux platforms. Argumentshandle -- Pointer to a function that returns current thread ID. Examplesif (PAPI_thread_init(pthread_self) != PAPI_OK) exit(1); BugsThis function has no known bugs. See AlsoPAPI_register_thread(3), PAPI_unregister_thread(3), PAPI(3), PAPI_get_thr_specific(3), PAPI_set_thr_specific(3), PAPI_thread_id(3), PAPI_list_threads(3) |