MP-Gadget  5.0.1.dev1-76bc7d4726-dirty
walltime.h
Go to the documentation of this file.
1 #ifndef GADGET_WALLTIME_H
2 #define GADGET_WALLTIME_H
3 
4 int walltime_clock(const char * name);
5 void walltime_reset(void);
6 #define WALLTIME_IGNORE "."
7 #define LINENO(a, b) a ":" # b
8 #define walltime_measure(name) walltime_measure_full(name, __FILE__ , __LINE__)
9 #define walltime_add(name, dt) walltime_add_full(name, dt, __FILE__, __LINE__)
10 double walltime_measure_internal(const char * name);
11 double walltime_add_internal(const char * name, const double dt);
12 double walltime_measure_full(const char * name, const char * file, const int line);
13 double walltime_add_full(const char * name, const double dt, const char * file, const int line);
14 
15 enum clocktype {
22 };
23 
24 
25 char walltime_get_symbol(const char * name);
26 
27 double walltime_get_time(const char * name);
28 double walltime_get(const char * name, const enum clocktype type);
29 #define walltime_step_min(id) walltime_get(id, CLOCK_STEP_MIN)
30 #define walltime_step_max(id) walltime_get(id, CLOCK_STEP_MAX)
31 #define walltime_step_mean(id) walltime_get(id, CLOCK_STEP_MEAN)
32 #define walltime_accu_min(id) walltime_get(id, CLOCK_ACCU_MIN)
33 #define walltime_accu_max(id) walltime_get(id, CLOCK_ACCU_MAX)
34 #define walltime_accu_mean(id) walltime_get(id, CLOCK_ACCU_MEAN)
35 
36 void walltime_summary(const int root, MPI_Comm comm);
37 void walltime_report(FILE * fd, const int root, MPI_Comm comm);
38 
39 struct Clock {
40  char name[128];
41  double time;
42  double max;
43  double min;
44  double mean;
45  char symbol;
46 };
47 
48 struct ClockTable {
49  int Nmax;
50  int N;
51  struct Clock C[512];
52  struct Clock AC[512];
53  int Nchildren[512];
54  double ElapsedTime;
55  double StepTime;
56  /*These are used for estimating when to timeout*/
57  double IOTime;
58  double PMStepTime;
59 };
60 void walltime_init(struct ClockTable * table);
61 #endif
const char * name
Definition: densitykernel.c:93
double StepTime
Definition: walltime.h:55
double ElapsedTime
Definition: walltime.h:54
int Nchildren[512]
Definition: walltime.h:53
struct Clock AC[512]
Definition: walltime.h:52
double PMStepTime
Definition: walltime.h:58
struct Clock C[512]
Definition: walltime.h:51
int Nmax
Definition: walltime.h:49
double IOTime
Definition: walltime.h:57
Definition: walltime.h:39
double max
Definition: walltime.h:42
char symbol
Definition: walltime.h:45
double mean
Definition: walltime.h:44
char name[128]
Definition: walltime.h:40
double min
Definition: walltime.h:43
double time
Definition: walltime.h:41
Definition: power.c:35
void walltime_reset(void)
Definition: walltime.c:176
int walltime_clock(const char *name)
Definition: walltime.c:112
clocktype
Definition: walltime.h:15
@ CLOCK_STEP_MAX
Definition: walltime.h:17
@ CLOCK_ACCU_MIN
Definition: walltime.h:21
@ CLOCK_STEP_MEAN
Definition: walltime.h:16
@ CLOCK_STEP_MIN
Definition: walltime.h:18
@ CLOCK_ACCU_MAX
Definition: walltime.h:20
@ CLOCK_ACCU_MEAN
Definition: walltime.h:19
void walltime_init(struct ClockTable *table)
Definition: walltime.c:19
double walltime_measure_internal(const char *name)
Definition: walltime.c:185
double walltime_add_full(const char *name, const double dt, const char *file, const int line)
Definition: walltime.c:203
double walltime_measure_full(const char *name, const char *file, const int line)
Definition: walltime.c:195
double walltime_get_time(const char *name)
Definition: walltime.c:149
double walltime_get(const char *name, const enum clocktype type)
Definition: walltime.c:130
void walltime_summary(const int root, MPI_Comm comm)
Definition: walltime.c:55
double walltime_add_internal(const char *name, const double dt)
Definition: walltime.c:180
char walltime_get_symbol(const char *name)
Definition: walltime.c:125
void walltime_report(FILE *fd, const int root, MPI_Comm comm)
Definition: walltime.c:220