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

📄 time_wrappers.w

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 W
字号:
#ifdef MPI_BUILD_PROFILING#undef MPI_BUILD_PROFILING#endif#include <stdio.h>#include "mpi.h"static char *output_filename_{{fileno}};{{forallfn fn_name}}static int ncalls_{{fn_name}}_{{fileno}}=0;static double time_{{fn_name}}_{{fileno}}=0.0;{{endforallfn}}{{fn fn_name MPI_Init}}  {{vardecl int myid, str_len}}  {{vardecl char *progName}}    {{callfn}}  MPI_Comm_rank( MPI_COMM_WORLD, &{{myid}} );  if ({{myid}} == 0) {    {{progName}} = (*{{argv}})[0];    {{str_len}} = strlen( {{progName}} ) + 1;  }  MPI_Bcast( &{{str_len}}, 1, MPI_INT, 0, MPI_COMM_WORLD );  if ({{myid}}) {{progName}} = (char *) malloc( {{str_len}} );  MPI_Bcast( {{progName}}, {{str_len}}, MPI_CHAR, 0, MPI_COMM_WORLD );  output_filename_{{fileno}} = (char *) malloc( {{str_len}} + 20 );  sprintf( output_filename_{{fileno}}, "%s_%d.prof", {{progName}}, {{myid}} );{{endfn}}{{fnall fn_name MPI_Init MPI_Finalize MPI_Wtime}}  {{vardecl double startTime}}  ncalls_{{fn_name}}_{{fileno}}++;  {{startTime}} = MPI_Wtime();  {{callfn}}  time_{{fn_name}}_{{fileno}} += MPI_Wtime() - {{startTime}};{{endfnall}}{{fn fn_name MPI_Finalize}}  {{vardecl FILE *outf}}  {{outf}} = fopen( output_filename_{{fileno}}, "w" );  if ({{outf}}) {  {{forallfn dis_fn}}    if (ncalls_{{dis_fn}}_{{fileno}}) {      fprintf( outf, "{{dis_fn}}: %d calls, %.6lf sec.\n",               ncalls_{{dis_fn}}_{{fileno}}, time_{{dis_fn}}_{{fileno}} );    }  {{endforallfn}}    fclose( {{outf}} );  }  {{callfn}}{{endfn}}

⌨️ 快捷键说明

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