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 subsystem’s 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 Programmer’s Reference PAPI_thread_init (3) September, 2004

  Innovative Computing Laboratory
2001 R&D Winner  
Contact PAPI: papi@cs.utk.edu Computer Science Department
  University of Tennessee