PAPIC:PAPI set multiplex.3
From PAPIDocs
Jump to: navigation, search


  • PAPI_get_multiplex - get the multiplexing status of specified event set
  • PAPI_set_multiplex - convert a standard event set to a multiplexed event set


C Interface

#include <papi.h>
int PAPI_get_multiplex(int  EventSet );
int PAPI_set_multiplex(int  EventSet );

Fortran Interface

#include fpapi.h
PAPIF_get_multiplex(C_INT  EventSet,  C_INT  check )
PAPIF_set_multiplex(C_INT  EventSet,  C_INT  check )


PAPI_get_multiplex tests the state of the PAPI_MULTIPLEXING flag in the specified event set, returning TRUE if a PAPI event set is multiplexed, or FALSE if not.

PAPI_set_multiplex converts a standard PAPI event set created by a call to PAPI_create_eventset() into an event set capable of handling multiplexed events. This must be done after calling PAPI_multiplex_init() , but prior to calling PAPI_start(). Events can be added to an event set either before or after converting it into a multiplexed set, but the conversion must be done prior to using it as a multiplexed set.


EventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventset (3)


PAPI_EINVAL One or more of the arguments is invalid, or the EventSet is already multiplexed.

PAPI_ENOEVST The EventSet specified does not exist.

PAPI_EISRUN The EventSet is currently counting events.

PAPI_ENOMEM Insufficient memory to complete the operation.


retval = PAPI_get_multiplex(EventSet);
if (retval > 0) printf("This event set is ready for multiplexing\n.")
if (retval == 0) printf("This event set is not enabled for multiplexing\n.")
if (retval < 0) handle_error(retval);
retval = PAPI_set_multiplex(EventSet);
if ((retval == PAPI_EINVAL) && (PAPI_get_multiplex(EventSet) > 0))
  printf("This event set already has multiplexing enabled\n");
else if (retval != PAPI_OK) handle_error(retval);


This function has no known bugs.

See Also

PAPI_multiplex_init(3), PAPI_set_opt(3), PAPI_create_eventset(3)