PAPI_set_multiplex(3) PAPI PAPI_set_multiplex(3)NAMEPAPI_set_multiplex-
Convert a standard event set to a multiplexed event set.
SYNOPSISDetailed 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 multiplexing0')
if (ret == FALSE) printf('This event set is not enabled for multiplexing0')
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 enabled0);
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.
Version 5.1.1.0 Tue May 21 2013 PAPI_set_multiplex(3)