Man page - papi_set_multiplex(3)
Packages contains this manual
Manual
PAPI_set_multiplex
NAMESYNOPSIS
Detailed Description
Author
NAME
PAPI_set_multiplex - Convert a standard event set to a multiplexed event set.
SYNOPSIS
Detailed Description
C Interface:
#include <
papi.h
>
int
PAPI_set_multiplex( int EventSet )
;
Parameters
EventSet an integer handle for a PAPI event set as created by PAPI_create_eventset
Return values
PAPI_OK
PAPI_EINVAL
-- One or more of the arguments is invalid,
or the EventSet is already multiplexed.
PAPI_ENOCMP
-- The EventSet specified is not yet bound
to a component.
PAPI_ENOEVST
-- The EventSet specified does not exist.
PAPI_EISRUN
-- The EventSet is currently counting
events.
PAPI_ENOMEM
-- Insufficient memory to complete the
operation.
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 , and either PAPI_add_event or PAPI_assign_eventset_component , 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.
Note
Multiplexing canβt be enabled until PAPI knows which component is targeted. Due to the late binding nature of PAPI event sets, this only happens after adding an event to an event set or explicitly binding the component with a call to PAPI_assign_eventset_component .
Example:
int EventSet =
PAPI_NULL;
int ret;
// Create an
empty EventSet
ret = PAPI_create_eventset(&EventSet);
if (ret != PAPI_OK) handle_error(ret);
// Bind it to
the CPU component
ret = PAPI_assign_eventset_component(EventSet, 0);
if (ret != PAPI_OK) handle_error(ret);
// Check
current multiplex status
ret = PAPI_get_multiplex(EventSet);
if (ret == TRUE) printf("This event set is ready for
multiplexing\n.")
if (ret == FALSE) printf("This event set is not enabled
for multiplexing\n.")
if (ret < 0) handle_error(ret);
// Turn on
multiplexing
ret = PAPI_set_multiplex(EventSet);
if ((ret == PAPI_EINVAL) &&
(PAPI_get_multiplex(EventSet) == TRUE))
printf("This event set already has multiplexing
enabled\n");
else if (ret != PAPI_OK) handle_error(ret);
See also
PAPI_multiplex_init
PAPI_get_multiplex
PAPI_set_opt
PAPI_create_eventset
Author
Generated automatically by Doxygen for PAPI from the source code.