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

📄 log_wrappers.w

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 W
字号:
#ifdef MPI_BUILD_PROFILING#undef MPI_BUILD_PROFILING#endif#include <stdio.h>#include "mpi.h"#include "mpe.h"{{forallfn fn_name MPI_Init MPI_Finalize}}static int {{fn_name}}_stateid_{{fileno}},{{fn_name}}_ncalls_{{fileno}}=0;{{endforallfn}}static int procid_{{fileno}};static char logFileName_{{fileno}}[256];{{fn fn_name MPI_Init}}  {{vardecl int stateid}}  {{callfn}}  MPE_Init_log();  MPI_Comm_rank( MPI_COMM_WORLD, &procid_{{fileno}} );  {{stateid}}=1;  {{forallfn funcs MPI_Init MPI_Finalize}}{{funcs}}_stateid_{{fileno}} = {{stateid}}++;  {{endforallfn}}  sprintf( logFileName_{{fileno}}, "%s_profile.log", (*{{argv}})[0] );  MPE_Start_log();{{endfn}}{{fnall fn_name MPI_Init MPI_Finalize}}/*    {{fn_name}} - prototyping replacement for {{fn_name}}    Log the beginning and ending of the time spent in {{fn_name}} calls.*/  ++{{fn_name}}_ncalls_{{fileno}};  MPE_Log_event( {{fn_name}}_stateid_{{fileno}}*2,	         {{fn_name}}_ncalls_{{fileno}}, (char *)0 );  {{callfn}}  MPE_Log_event( {{fn_name}}_stateid_{{fileno}}*2+1,	         {{fn_name}}_ncalls_{{fileno}}, (char *)0 );{{endfnall}}{{fn fn_name MPI_Finalize}}/*    MPI_Finalize - prototyping replacement for MPI_Finalize*/  if (procid_{{fileno}} == 0) {    fprintf( stderr, "Writing logfile.\n");    {{forallfn fn_name2 MPI_Init MPI_Finalize}}MPE_Describe_state( {{fn_name2}}_stateid_{{fileno}}*2,	                            {{fn_name2}}_stateid_{{fileno}}*2+1,      				    "{{fn_name2}}", ":" );    {{endforallfn}}  }  MPE_Finish_log( logFileName_{{fileno}} );  if (procid_{{fileno}} == 0)    fprintf( stderr, "Finished writing logfile.\n");  {{callfn}}{{endfn}}

⌨️ 快捷键说明

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