All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
PAPI_ipc Class Reference

Simplified call to get instructions per cycle, real and processor time. More...

Detailed Description

C Interface:
#include <papi.h>
int PAPI_ipc( float *rtime, float *ptime, long long *ins, float *ipc );
*rtimetotal realtime since the first call
*ptimetotal process time since the first call
*instotal instructions since the first call
*ipcincremental instructions per cycle since the last call
Return values
PAPI_EINVALThe counters were already started by something other than PAPI_ipc().
PAPI_ENOEVNTThe floating point operations event does not exist.
PAPI_ENOMEMInsufficient memory to complete the operation.

The first call to PAPI_ipc() will initialize the PAPI High Level interface, set up the counters to monitor PAPI_TOT_INS and PAPI_TOT_CYC events and start the counters.

Subsequent calls will read the counters and return total real time, total process time, total instructions since the start of the measurement and the IPC rate since the latest call to PAPI_ipc().

A call to PAPI_stop_counters() will stop the counters from running and then calls such as PAPI_start_counters() or other rate calls can safely be used.

PAPI_ipc should return a ratio greater than 1.0, indicating instruction level parallelism within the chip. The larger this ratio the more effeciently the program is running.

See Also

The documentation for this class was generated from the following file: