16 #define MAX_powercap_EVENTS 64 23 printf(
"Sleeping 1 second...\n" );
30 #define MATRIX_SIZE 1024 45 a[
i][j]=( double )
i*(
double )j;
46 b[
i][j]=( double )
i/(
double )( j+5 );
67 if ( !
quiet ) printf(
"Matrix multiply sum: s=%lf\n",
s );
72 int main (
int argc,
char **argv )
76 int retval,cid,powercap_cid=-1,numcmp;
89 long long before_time,after_time;
99 if ( strstr( argv[1],
"-w" ) ) {
110 if ( !
TESTS_QUIET ) printf(
"Trying all powercap events\n" );
114 for( cid=0; cid<numcmp; cid++ ) {
117 test_fail( __FILE__, __LINE__,
"PAPI_get_component_info failed\n", 0 );
119 if ( strstr( cmpinfo->
name,
"powercap" ) ) {
121 if ( !
TESTS_QUIET ) printf(
"Found powercap component at cid %d\n",powercap_cid );
124 printf(
"powercap component disabled: %s\n",
127 test_skip( __FILE__,__LINE__,
"powercap component disabled",0 );
135 test_skip( __FILE__,__LINE__,
"No powercap component found\n",0 );
139 test_skip( __FILE__,__LINE__,
"No counters in the powercap component\n",0 );
152 test_fail( __FILE__, __LINE__,
"Error from PAPI_event_code_to_name",
retval );
176 if ( !
TESTS_QUIET ) printf(
"\nStarting measurements...\n\n" );
193 elapsed_time=( ( double )( after_time-before_time ) )/1.0e9;
196 printf(
"\nStopping measurements, took %.3fs, gathering results...\n\n", elapsed_time );
199 printf(
"scaled energy measurements:\n" );
201 if ( strstr( event_names[
i],
"ENERGY_UJ" ) ) {
203 printf(
"%-45s%-20s%4.6f J (Average Power %.1fW)\n",
204 event_names[
i], event_descrs[
i],
206 ( (
double )
values[
i]/1.0e6 )/elapsed_time );
212 printf(
"energy counts:\n" );
214 if ( strstr( event_names[
i],
"ENERGY_UJ" ) ) {
216 printf(
"%-45s%-20s%12lld\t%#08llx\n", event_names[
i],
224 printf(
"long term time window values:\n" );
226 if ( strstr( event_names[
i],
"TIME_WINDOW_A_US" ) ) {
228 printf(
"%-45s%-20s%4f (secs)\n",
229 event_names[
i], event_descrs[
i],
236 printf(
"short term time window values:\n" );
238 if ( strstr( event_names[
i],
"TIME_WINDOW_B_US" ) ) {
240 printf(
"%-45s%-20s%4f (secs)\n",
241 event_names[
i], event_descrs[
i],
248 printf(
"long term power limit:\n" );
250 if ( strstr( event_names[
i],
"POWER_LIMIT_A_UW" ) ) {
252 printf(
"%-45s%-20s%4f (watts)\n",
253 event_names[
i], event_descrs[
i],
260 printf(
"short term power limit:\n" );
262 if ( strstr( event_names[
i],
"POWER_LIMIT_B_UW" ) ) {
264 printf(
"%-45s%-20s%4f (watts)\n",
265 event_names[
i], event_descrs[
i],
int PAPI_stop(int EventSet, long long *values)
char disabled_reason[PAPI_MAX_STR_LEN]
const PAPI_component_info_t * PAPI_get_component_info(int cidx)
void test_pass(const char *filename)
int PAPI_add_event(int EventSet, int EventCode)
char units[PAPI_MIN_STR_LEN]
int PAPI_num_components(void)
char long_descr[PAPI_HUGE_STR_LEN]
static double b[MATRIX_SIZE][MATRIX_SIZE]
char units[MAX_EVENTS][BUFSIZ]
Return codes and api definitions.
int PAPI_get_event_info(int EventCode, PAPI_event_info_t *info)
void test_skip(const char *file, int line, const char *call, int retval)
int PAPI_library_init(int version)
#define MAX_powercap_EVENTS
Tests basic functionality of powercap component.
char name[PAPI_MAX_STR_LEN]
int PAPI_enum_cmp_event(int *EventCode, int modifier, int cidx)
int PAPI_cleanup_eventset(int EventSet)
int PAPI_create_eventset(int *EventSet)
int PAPI_event_code_to_name(int EventCode, char *out)
static double c[MATRIX_SIZE][MATRIX_SIZE]
int tests_quiet(int argc, char **argv)
void test_fail(const char *file, int line, const char *call, int retval)
long long PAPI_get_real_nsec(void)
int data_type[MAX_EVENTS]
int PAPI_destroy_eventset(int *EventSet)
static double a[MATRIX_SIZE][MATRIX_SIZE]
int PAPI_start(int EventSet)
static long long values[NUM_EVENTS]
int main(int argc, char **argv)