亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? t_pr.c

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? C
字號(hào):
/*$Id: t_pr.c,v 1.1 2001/04/19 00:03:07 rosinski Exp $*/#include <stdio.h>#include <string.h>     /* memset */#include <sys/time.h>   /* gettimeofday */#include <sys/times.h>  /* times */#include <unistd.h>     /* sysconf */#include "gpt.h"struct Stats {		     float usr;	   /* user CPU time */  float sys;	   /* system CPU time */  float usrsys;	   /* usr + sys */  float elapse;	   /* elapsed time */  float max_wtime; /* max elapsed wallclock time per call */  float min_wtime; /* min elapsed wallclock time per call */  long count;	   /* number of invocations of this timer */  PCL_CNT_TYPE pcl_result[PCL_COUNTER_MAX];};static void fillstats (struct Stats *, struct node *);static void print_header (FILE *, int);static void print_stats_line (FILE *, struct Stats *);/*** t_pr: print stats for all known timers to a file**** Input arguments:**   procid: Designed for MPI jobs to give a unique output file name, **     normally the MPI logical process id.**** Return value: 0 (success) or -1 (failure)*/static int mhz;            /* processor clock rate (from pcl library) */int t_pr (int procid){  char outfile[11];        /* name of output file: timing.xxx */			     int indent;              /* index over number indentation levels */  int thread;              /* thread index */  int ilstart;             /* index over indentation level */  int n;  double gttdcost;         /* cost of a single gettimeofday call */  double deltat;           /* time difference between 2 calls to gettimeofday */  struct Stats stats;      /* per timer stats */  struct Stats threadsum;  /* timer sum over threads */			     struct node *ptr, *tptr; /* linked list pointers */			     FILE *fp;                /* output file pointer */  struct timeval tp1, tp2; /* input to gettimeofday() */  struct tms buf;          /* input to times() */#if ( defined DISABLE_TIMERS )  return 0;#endif  if ( ! t_initialized)    return t_error ("t_pr: t_initialize has not been called\n");  /*  ** Only allow the master thread to print stats  */  if (get_thread_num () != 0)    return 0;  sprintf (outfile, "%s%d\0","timing.", procid);  if ((fp = fopen (outfile, "w")) == NULL)    fp = stderr;  fprintf (fp,"Procid = %d\n", procid);  /*  ** Estimate wallclock timer overhead: 4 times the cost of a call to gettimeofday  ** (since each start/stop pair involves 4 such calls).  */  gettimeofday (&tp1, NULL);  gettimeofday (&tp2, NULL);  gttdcost = 1.e6*(tp2.tv_sec  - tp1.tv_sec) + (tp2.tv_usec - tp1.tv_usec);  fprintf (fp, "Wallclock timer cost est.: %8.3g usec per start/stop pair\n", 	   gttdcost*4.);  /*  ** CPU cost estimate: 2 times the cost of a call to times().  Subtract the  ** cost of a single gettimeofday call to improve the estimate.  */  if (usrsysenabled) {    gettimeofday (&tp1, NULL);    (void) times (&buf);    gettimeofday (&tp2, NULL);    deltat = 1.e6*(tp2.tv_sec  - tp1.tv_sec) + (tp2.tv_usec - tp1.tv_usec);    fprintf (fp, "CPU timer cost est.:       %8.3g usec per start/stop pair\n", 	     2.*deltat - gttdcost);  }      fprintf (fp, "CPU accumulation interval is %g seconds\n",           1./(float) ticks_per_sec);#ifdef HAVE_PCL  mhz = PCL_determine_mhz_rate();  fprintf (fp, "Clock speed is %d MHz\n", mhz);#endif  for (thread = 0; thread < numthreads; thread++) {    /*    ** Only print heading for threads that have 1 or more items to report    */    if (timers[thread] == NULL) continue;    fprintf (fp, "\nStats for thread %d:\n", thread);#ifdef THREADED_PTHREADS    fprintf (fp, "pthread id %d:\n", (int) threadid[thread]);#endif    print_header (fp, max_indent_level[thread]);    for (ptr = timers[thread]; ptr != NULL; ptr = ptr->next) {      if (ptr->onflg) {	fprintf (fp, "Timer %s was not off.  No stats will be printed\n",		 ptr->name);      } else {	fillstats (&stats, ptr);	/*	** Print stats indented.  If indent_level = AMBIGUOUS (a negative 	** number) the name will be printed with no indentation.	*/	for (indent = 0; indent < ptr->indent_level; indent++)	  fprintf (fp, "  ");	fprintf (fp, "%-15s", ptr->name);	/*	** If indent_level = AMBIGUOUS (a negative number) we want to loop 	** from 0	*/	ilstart = MAX (0, ptr->indent_level);	for (indent = ilstart; indent < max_indent_level[thread]; indent++)	  fprintf (fp, "  ");	print_stats_line (fp, &stats);      }    }    if (usrsysenabled || wallenabled)      fprintf (fp, "\nTIMER OVERHEAD (wallclock seconds) = %12.6f\n", 	       overhead[thread]);    if (pcl_cyclesenabled)      fprintf (fp, "TIMER OVERHEAD (cycles) = %12.6e\n", 	       (double) overhead_pcl[thread]);  }  /*  ** Print a vertical summary if data exist for more than 1 thread.  The "2"  ** passed to print_header is so we'll get an extra 4 spaces of indentation  ** due to the thread number appended to the timer name.  */  if (numthreads > 0 && timers[1] != NULL) {    fprintf (fp, "\nSame stats sorted by timer with thread number appended:\n");    print_header (fp, 2);    /*    ** Print stats for slave threads that match master    */    for (ptr = timers[0]; ptr != NULL; ptr = ptr->next) {      char name[20];      Boolean found = false;      /*      ** Don't bother printing summation stats when only the master thread      ** invoked the timer      */      for (thread = 1; thread < numthreads; thread++)	for (tptr = timers[thread]; tptr != NULL; tptr = tptr->next) {	  if (STRMATCH (ptr->name, tptr->name))	    found = true;	}      if ( ! found) continue;      /*      ** Initialize stats which sum over threads      */      memset (&threadsum, 0, sizeof (threadsum));      if ( ! ptr->onflg) {	fillstats (&stats, ptr);	strcpy (name, ptr->name);	strcat (name, ".0");	fprintf (fp, "%-19s", name);	print_stats_line (fp, &stats);	threadsum = stats;      }      /*      ** loop over slave threads, printing stats for each and accumulating      ** sum over threads when the name matches      */      for (thread = 1; thread < numthreads; thread++) {	for (tptr = timers[thread]; tptr != NULL; tptr = tptr->next) {	  if (STRMATCH (ptr->name, tptr->name)) {	    if ( ! tptr->onflg) {	      char num[5];	      fillstats (&stats, tptr);	      strcpy (name, tptr->name);	      sprintf (num, ".%-3d", thread);	      strcat (name, num);	      fprintf (fp, "%-19s", name);	      print_stats_line (fp, &stats);	      threadsum.usr      += stats.usr;	      threadsum.sys      += stats.sys;	      threadsum.usrsys   += stats.usrsys;	      threadsum.elapse   += stats.elapse;	      threadsum.max_wtime = MAX (threadsum.max_wtime, stats.max_wtime);	      threadsum.min_wtime = MIN (threadsum.min_wtime, stats.min_wtime);	      threadsum.count    += stats.count;	      for (n = 0; n < ncounter; n++)		threadsum.pcl_result[n] += stats.pcl_result[n];	    }	    break; /* Go to the next thread */	  }        /* if (STRMATCH (ptr->name, tptr->name) */	}          /* loop thru linked list of timers for this thread */      }            /* loop over slave threads */      strcpy (name, ptr->name);      strcat (name, ".sum");      fprintf (fp, "%-19s", name);      print_stats_line (fp, &threadsum);      fprintf (fp, "\n");    } /* loop through master timers */    for (thread = 0; thread < numthreads; thread++) {      if (usrsysenabled || wallenabled)	fprintf (fp, "OVERHEAD.%-3d (wallclock seconds) = %12.6f\n", 		 thread, overhead[thread]);      if (pcl_cyclesenabled)	fprintf (fp, "OVERHEAD.%-3d (cycles) = %12.6e\n", 		 thread, (double) overhead_pcl[thread]);    }  } /* if (numthreads > 0 && timers[1] != NULL */  return 0;}void fillstats (struct Stats *stats, struct node *ptr){  int n;  stats->usr       = ptr->accum_utime / (float) ticks_per_sec;  stats->sys       = ptr->accum_stime / (float) ticks_per_sec;  stats->usrsys    = stats->usr + stats->sys;  stats->elapse    = ptr->accum_wtime_sec + 1.e-6 * ptr->accum_wtime_usec;  stats->max_wtime = ptr->max_wtime;  stats->min_wtime = ptr->min_wtime;  stats->count     = ptr->count;  for (n = 0; n < ncounter; n++)    stats->pcl_result[n] = ptr->accum_pcl_result[n];}void print_stats_line (FILE *fp, struct Stats *stats){  int index;  int n;  long long cycles;  long long instr;  long long flops;  long long loadstore;  long long l2cache;  long long jump;  float mflops;  float ipc;  float memfp;  fprintf (fp, "%9ld ", stats->count);  if (usrsysenabled)    fprintf (fp, "%9.3f %9.3f %9.3f ", stats->usr, stats->sys, stats->usrsys);  if (wallenabled)    fprintf (fp, "%9.3f %9.3f %9.3f ", stats->elapse, stats->max_wtime, 	     stats->min_wtime);    for (n = 0; n < nevent; n++) {    if (event[n]->name > pcl_start && event[n]->name < pcl_end) {      index = event[n]->index;      if (stats->pcl_result[index] > 1.e6)	fprintf (fp, "%9.3e ", (double) stats->pcl_result[index]);      else	fprintf (fp, "%9ld ", (long) stats->pcl_result[index]);    }  }  fprintf (fp, "\n");}void print_header (FILE *fp, int indent_level){  int i;  int n;  fprintf (fp, "Name           ");  for (i = 0; i < indent_level; i++)    fprintf (fp, "  ");  fprintf (fp, "Called    ");  if (usrsysenabled)    fprintf (fp, "Usr       Sys       Usr+Sys   ");  if (wallenabled)    fprintf (fp, "Wallclock Max       Min       ");  for (n = 0; n < nevent; n++)    if (event[n]->name > pcl_start && event[n]->name <= pcl_end)      fprintf (fp, event[n]->string);  fprintf (fp, "\n");}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区免费视频| 色哟哟欧美精品| 福利一区二区在线| av电影一区二区| 欧美日韩一本到| 久久久久久电影| 一区二区激情视频| 精品在线视频一区| av电影天堂一区二区在线| 欧美日韩久久一区二区| 26uuu久久综合| 亚洲综合一区二区精品导航| 日本怡春院一区二区| 国产成人亚洲综合a∨猫咪| 91久久精品一区二区三区| 欧美成人综合网站| 亚洲女同一区二区| 老汉av免费一区二区三区| 欧美日韩大陆一区二区| 久久精品视频一区二区三区| 亚洲精品va在线观看| 国产在线视频一区二区三区| 在线看不卡av| 国产偷v国产偷v亚洲高清| 亚洲成人三级小说| 成人免费毛片高清视频| 欧美日韩国产区一| 国产精品国产三级国产aⅴ原创| 天天综合日日夜夜精品| 成人av网站在线观看| 欧美mv日韩mv国产网站app| 一区二区三区不卡在线观看| 国产一区在线观看视频| 欧美日韩久久一区| 中文字幕一区av| 精品亚洲国产成人av制服丝袜 | 91精品国产综合久久蜜臀| 国产精品进线69影院| 精东粉嫩av免费一区二区三区| 色婷婷综合在线| 中文字幕av不卡| 韩国一区二区视频| 7777精品伊人久久久大香线蕉| 亚洲欧美日韩在线不卡| 高清成人免费视频| 欧美不卡一区二区三区| 婷婷开心久久网| 91福利在线播放| 亚洲人成网站精品片在线观看| 国产精品456| 欧美成人一区二区三区片免费 | 欧美妇女性影城| 亚洲免费av观看| jvid福利写真一区二区三区| 欧美精品一区二区三区视频| 免费看日韩a级影片| 欧美日韩精品一区视频| 亚洲精品欧美激情| 99久久99精品久久久久久| 国产女同互慰高潮91漫画| 久久av老司机精品网站导航| 日韩欧美一区二区不卡| 五月婷婷激情综合| 欧美三级日韩三级国产三级| 亚洲一区二区成人在线观看| 色婷婷亚洲婷婷| 亚洲精品自拍动漫在线| www.欧美日韩国产在线| 国产精品网站一区| 成人激情开心网| 国产精品九色蝌蚪自拍| 99精品欧美一区二区蜜桃免费 | 色综合天天天天做夜夜夜夜做| 中文字幕av不卡| 99麻豆久久久国产精品免费优播| 国产精品污污网站在线观看| 北岛玲一区二区三区四区| 中文字幕亚洲综合久久菠萝蜜| 99re这里都是精品| 亚洲欧美区自拍先锋| 在线观看国产91| 午夜激情久久久| 欧美一区二区在线播放| 精品制服美女丁香| 久久综合久久综合久久综合| 国产乱码一区二区三区| 国产欧美日本一区视频| 波多野结衣视频一区| 曰韩精品一区二区| 欧美日本免费一区二区三区| 日本最新不卡在线| 久久久青草青青国产亚洲免观| 国产成人鲁色资源国产91色综| 中文字幕一区二区在线观看 | 免费人成在线不卡| 精品第一国产综合精品aⅴ| 国产剧情一区二区三区| 国产精品久久毛片a| 欧美丝袜自拍制服另类| 日韩不卡一区二区| 国产视频视频一区| 色综合天天综合色综合av| 亚洲超碰97人人做人人爱| 日韩免费视频一区| 丰满岳乱妇一区二区三区| 亚洲欧美日韩久久| 欧美一二三四在线| 成人午夜av电影| 亚洲成人www| 久久久www成人免费毛片麻豆 | 一区二区三区免费在线观看| 7777精品伊人久久久大香线蕉的 | 777精品伊人久久久久大香线蕉| 九九久久精品视频| 中文字幕制服丝袜一区二区三区| 日本韩国欧美三级| 久久国产精品露脸对白| 中文字幕亚洲电影| 69堂亚洲精品首页| 成人高清免费在线播放| 亚洲超碰精品一区二区| 国产人成亚洲第一网站在线播放| 欧美三区在线观看| 国产精品 欧美精品| 性感美女久久精品| 国产女人aaa级久久久级| 在线观看欧美精品| 国产成人在线色| 日韩黄色小视频| 日韩理论片网站| 久久夜色精品一区| 欧美日韩国产精品自在自线| 国产成人综合在线| 日韩不卡一区二区| 亚洲精品国产一区二区精华液| 26uuu国产日韩综合| 欧美唯美清纯偷拍| 成人黄色a**站在线观看| 免费人成在线不卡| 一区二区三区在线视频观看58| 久久这里只有精品首页| 欧美精选午夜久久久乱码6080| 大尺度一区二区| 久久99精品久久久久久动态图| 一区二区成人在线| 国产精品国产自产拍在线| 日韩欧美国产一区二区三区| 一本色道亚洲精品aⅴ| 国产剧情av麻豆香蕉精品| 青青国产91久久久久久| 亚洲精品成人精品456| 国产精品免费视频网站| 精品国产第一区二区三区观看体验 | 欧美日韩mp4| 91国偷自产一区二区三区成为亚洲经典| 久久狠狠亚洲综合| 亚洲午夜激情av| 亚洲免费在线观看视频| 欧美激情一区二区三区全黄| 精品国产3级a| 精品捆绑美女sm三区| 欧美一区二区成人6969| 欧美三电影在线| 亚洲精品一区二区三区精华液| 欧美日韩在线精品一区二区三区激情 | 欧美日韩国产片| 在线观看一区二区视频| 97成人超碰视| 91最新地址在线播放| 成人午夜精品在线| 国产高清视频一区| 国产精品一二三区| 黄网站免费久久| 黑人巨大精品欧美一区| 美腿丝袜亚洲一区| 美国十次综合导航| 麻豆91在线播放| 精彩视频一区二区三区| 激情综合一区二区三区| 久久精品国产澳门| 精品一区二区在线观看| 久久精品国产**网站演员| 美腿丝袜亚洲三区| 国内精品国产三级国产a久久| 国内精品国产三级国产a久久| 国内成人精品2018免费看| 国产资源在线一区| 国产ts人妖一区二区| 懂色av一区二区三区免费观看| 国产99久久久国产精品潘金 | 中文av一区特黄| 18成人在线观看| 亚洲视频每日更新| 亚洲综合区在线| 视频一区二区不卡| 日韩不卡一区二区| 极品少妇xxxx精品少妇偷拍| 国产a精品视频| 色天天综合色天天久久| 欧美巨大另类极品videosbest |