PAPI3:PAPI library init.3
From PAPIDocs
Jump to: navigation, search


  • PAPI_library_init - initialize the PAPI library.
  • PAPI_is_initialized - check for initialization.


C Interface

#include <papi.h>
int PAPI_library_init(int  version );
int PAPI_is_initialized(void);

Fortran Interface

#include fpapi.h
PAPIF_library_init(C_INT  check )
PAPIF_is_initialized(C_INT  check )


PAPI_library_init() initializes the PAPI library. It must be called before any low level PAPI functions can be used. If your application is making use of threads PAPI_thread_init (3) must also be called prior to making any calls to the library other than PAPI_library_init() .

PAPI_is_initialized() returns the status of the PAPI library. The PAPI library can be in one of three states, as described under RETURN VALUES.


version -- upon initialization, PAPI checks the argument against the internal value of PAPI_VER_CURRENT when the library was compiled. This guards against portability problems when updating the PAPI shared libraries on your system.


PAPI_is_initialized never returns an error.

PAPI_library_init can return the following:

PAPI_EINVAL papi.h is different from the version used to compile the PAPI library.

PAPI_ENOMEM Insufficient memory to complete the operation.

PAPI_ESBSTR This substrate does not support the underlying hardware.

PAPI_ESYS A system or C library call failed inside PAPI, see the errno variable.


int retval;
/* Initialize the library */
retval = PAPI_library_init(PAPI_VER_CURRENT);
if (retval != PAPI_VER_CURRENT && retval > 0) {
fprintf(stderr,"PAPI library version mismatch!\en");
exit(1); }
if (retval < 0)
retval = PAPI_is_initialized();
if (retval != PAPI_LOW_LEVEL_INITED)


If you don't call this before using any of the low level PAPI calls, your application could core dump.

See Also

PAPI(3), PAPI_thread_init(3)