blob: d1d9241e11927cb4dd04d7da23bc2259453bd928 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/*@@
@file Output.c
@date July 6 2003
@author Gabrielle Allen
@desc
Functions to report the timers
@enddesc
@version $Header$
@@*/
#include <stdlib.h>
#include "cctk.h"
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
#include "cctk_Schedule.h"
static const char *rcsid = "$Header$";
CCTK_FILEVERSION(CactusUtils_TimerReport_Output_c);
/********************************************************************
********************* Local Data Types ***********************
********************************************************************/
/********************************************************************
********************* Local Routine Prototypes *********************
********************************************************************/
/********************************************************************
********************* Scheduled Routine Prototypes ***************
********************************************************************/
void TimerReport_Output(CCTK_ARGUMENTS);
void TimerReport_Checkpoint(CCTK_ARGUMENTS);
/********************************************************************
********************* Other Routine Prototypes *********************
********************************************************************/
/********************************************************************
********************* Local Data *****************************
********************************************************************/
/********************************************************************
******************** External Routines ************************
********************************************************************/
/*@@
@routine TimerReport_Output
@date July 6 2003
@author Gabrielle Allen
@desc
Output the timer table
@enddesc
@@*/
void TimerReport_Output(CCTK_ARGUMENTS)
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
if (next ||
out_at == cctk_iteration ||
(out_every && cctk_iteration%out_every == 0))
{
CCTK_VInfo(CCTK_THORNSTRING,
"Timer Report at iteration %d time %g",
cctk_iteration, (double)cctk_time);
CCTK_SchedulePrintTimes(NULL);
if (next)
{
CCTK_ParameterSet("next", CCTK_THORNSTRING, "no");
}
}
}
/*@@
@routine TimerReport_Checkpoint
@date April 10 2004
@author Erik Schnetter
@desc
Output the timer table if before_checkpoint is set
@enddesc
@@*/
void TimerReport_Checkpoint(CCTK_ARGUMENTS)
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
if (before_checkpoint &&
(checkpoint_every && cctk_iteration%checkpoint_every == 0))
{
CCTK_VInfo(CCTK_THORNSTRING,
"Timer Report before checkpointing at iteration %d, time %g",
cctk_iteration, (double)cctk_time);
CCTK_SchedulePrintTimes(NULL);
}
}
/********************************************************************
******************** Internal Routines ************************
********************************************************************/
|