NAME
PAPI_thread_init - initialize thread support in the PAPI library
CONTENTS
Synopsis
Description
Arguments
Return Values
Examples
Bugs
See Also
SYNOPSIS
C 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)
DESCRIPTION
PAPI_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 subsystems call, which is
pthread_self() on Linux platforms.
ARGUMENTS
handle -- Pointer to a function that returns current thread ID.
RETURN VALUES
PAPI_OK | |
The call returned successfully.
|
PAPI_EINVAL | |
One or more of the arguments is invalid.
|
|
EXAMPLES
if (PAPI_thread_init(pthread_self) != PAPI_OK)
exit(1);
BUGS
This function has no known bugs.
SEE ALSO
PAPI_thread_id (3),
PAPI_list_threads (3),
PAPI_get_thr_specific (3),
PAPI_set_thr_specific (3),
PAPI_register_thread (3),
PAPI_unregister_thread (3),
PAPI (3)
PAPI Programmers Reference | PAPI_thread_init (3) | September, 2004 |
|
|