⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 papi_defs.c

📁 fortran并行计算包
💻 C
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* *  (C) 2006 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#ifdef PAPI_MONITOR#include <papi.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <my_papi_defs.h>unsigned long long tmp2 = 0;int DO_TEST = 0;int PAPI_events[NEVENTS]  = {PAPI_TOT_INS,                             PAPI_TOT_CYC,                             /*PAPI_RES_STL, */                             PAPI_L1_DCM,                             PAPI_L1_ICM,                             PAPI_L2_LDM,                             PAPI_L2_STM};char PAPI_msgs[NEVENTS][PAPI_MAX_STR_LEN] = {"Number of Instructions          ",                                             "Number of Cycles                ",                                             /*"Number of Cycles (stalled)      ", */                                             "Number of L1 Cache Data misses  ",                                             "Number of L1 Cache Inst misses  ",                                             "Number of L2 Cache load misses  ",                                             "Number of L2 Cache store misses "};int        PAPI_EventSet         = PAPI_NULL ;//long_long  PAPI_overhead_values[NEVENTS]  = { 240, 1040, /*0,*/ 6, 1, 0, 0 }; long_long  PAPI_dummy_values[NEVENTS]  = {(long_long) 0 };long_long  PAPI_values[NEVENTS]  = {(long_long) 0 };long_long  PAPI_values2[NEVENTS] = {(long_long) 0 };long_long  PAPI_values3[NEVENTS] = {(long_long) 0 };long_long  PAPI_values4[NEVENTS] = {(long_long) 0 };long_long  PAPI_values5[NEVENTS] = {(long_long) 0 };long_long  PAPI_values6[NEVENTS] = {(long_long) 0 };long_long  PAPI_values7[NEVENTS] = {(long_long) 0 };long_long  PAPI_values8[NEVENTS] = {(long_long) 0 };long_long  PAPI_values9[NEVENTS] = {(long_long) 0 };long_long  PAPI_values10[NEVENTS] = {(long_long) 0 };long_long  PAPI_values11[NEVENTS] = {(long_long) 0 };long_long  PAPI_values12[NEVENTS] = {(long_long) 0 };//double  PAPI_overhead_vvalues[NEVENTS] = {240.0, 1013.0, /*0.0,*/ 12.0, 1.0, 0.0, 0.0}; double  PAPI_overhead_vvalues[NEVENTS] = {222.0, 960.0, /*0.0,*/ 5.0, 2.0, 0.0, 0.0};long_long  PAPI_vvalues1[2][NEVENTS];long_long  PAPI_vvalues2[2][NEVENTS];long_long  PAPI_vvalues3[2][NEVENTS];long_long  PAPI_vvalues4[2][NEVENTS];long_long  PAPI_vvalues5[2][NEVENTS];long_long  PAPI_vvalues6[2][NEVENTS];long_long  PAPI_vvalues7[2][NEVENTS];long_long  PAPI_vvalues8[2][NEVENTS];long_long  PAPI_vvalues9[2][NEVENTS];long_long  PAPI_vvalues10[2][NEVENTS];long_long  PAPI_vvalues11[2][NEVENTS];long_long  PAPI_vvalues12[2][NEVENTS];long_long  PAPI_vvalues13[2][NEVENTS];long_long  PAPI_vvalues14[2][NEVENTS];long_long  PAPI_vvalues15[2][NEVENTS];long_long  PAPI_vvalues16[2][NEVENTS];long_long  PAPI_vvalues17[2][NEVENTS];int iter11 = 0;void my_papi_start( int myrank ){#ifdef PAPI_MONITOR  int retval, index ;  char EventCodeStr[PAPI_MAX_STR_LEN];    if(myrank == 0)    DO_TEST = 1;    retval = PAPI_library_init(PAPI_VER_CURRENT);  if (retval != PAPI_VER_CURRENT)    {      fprintf(stderr, "PAPI library init error! %d\n", retval);      exit(1);    }  fprintf(stderr,"PAPI Library start ...\n");  if (PAPI_create_eventset(&PAPI_EventSet) != PAPI_OK)    exit(1);  for (index = 0 ; index < NEVENTS ; index ++)    {      PAPI_event_code_to_name(PAPI_events[index], EventCodeStr);      /*fprintf(stderr,"Adding event %s ... ",EventCodeStr); */      if (PAPI_add_event(PAPI_EventSet,PAPI_events[index]) != PAPI_OK)	exit(1);      /*fprintf(stderr," DONE !\n"); */    }  /*fprintf(stderr,"\n"); */  if (PAPI_start(PAPI_EventSet) != PAPI_OK)    exit(1);#endif /*PAPI_MONITOR */}void my_papi_close(void){#ifdef PAPI_MONITOR  PAPI_shutdown();  fprintf(stderr,"PAPI library shutdown ... \n");#endif /*PAPI_MONITOR */}intPAPI_accum_min (int EventSet, long_long *values){    long_long  dummy_values[NEVENTS];    long_long a;    long_long b;    int i;        PAPI_read (EventSet, dummy_values);        for (i = 0; i < NEVENTS; i++) {	a = dummy_values[i];	b = values[i];	if (a < b)	    values[i] = a;    }    return (PAPI_reset(EventSet));}intPAPI_accum_var (int EventSet, long_long values[2][NEVENTS]){    long_long  dummy_values[NEVENTS];    long_long a;    int i;        PAPI_read (EventSet, dummy_values);        for (i = 0; i < NEVENTS; i++) {	a = dummy_values[i];	values[0][i] += a;	values[1][i] += a * a;    }    return (PAPI_reset(EventSet));}#endif /*PAPI_MONITOR */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -