Bug Summary

File:sys/logging/plog.c
Warning:line 1271, column 3
Value stored to 'ierr' is never read

Annotated Source Code

[?] Use j/k keys for keyboard navigation

1
2/*
3 PETSc code to log object creation and destruction and PETSc events.
4
5 This provides the public API used by the rest of PETSc and by users.
6
7 These routines use a private API that is not used elsewhere in PETSc and is not
8 accessible to users. The private API is defined in logimpl.h and the utils directory.
9
10*/
11#include <petsc/private/logimpl.h> /*I "petscsys.h" I*/
12#include <petsctime.h>
13#include <petscviewer.h>
14
15PetscErrorCode PetscLogObjectParent(PetscObject p,PetscObject c)
16{
17 if (!c || !p) return 0;
18 c->parent = p;
19 c->parentid = p->id;
20 return 0;
21}
22
23/*@C
24 PetscLogObjectMemory - Adds to an object a count of additional amount of memory that is used by the object.
25
26 Not collective.
27
28 Input Parameters:
29+ obj - the PETSc object
30- mem - the amount of memory that is being added to the object
31
32 Level: developer
33
34 Developer Notes:
35 Currently we do not always do a good job of associating all memory allocations with an object.
36
37.seealso: PetscFinalize(), PetscInitializeFortran(), PetscGetArgs(), PetscInitializeNoArguments()
38
39@*/
40PetscErrorCode PetscLogObjectMemory(PetscObject p,PetscLogDouble m)
41{
42 if (!p) return 0;
43 p->mem += m;
44 return 0;
45}
46
47PetscLogEvent PETSC_LARGEST_EVENT = PETSC_EVENT1311311;
48
49#if defined(PETSC_USE_LOG1)
50#include <petscmachineinfo.h>
51#include <petscconfiginfo.h>
52
53/* used in the MPI_XXX() count macros in petsclog.h */
54
55/* Action and object logging variables */
56Action *petsc_actions = NULL((void*)0);
57Object *petsc_objects = NULL((void*)0);
58PetscBool petsc_logActions = PETSC_FALSE;
59PetscBool petsc_logObjects = PETSC_FALSE;
60int petsc_numActions = 0, petsc_maxActions = 100;
61int petsc_numObjects = 0, petsc_maxObjects = 100;
62int petsc_numObjectsDestroyed = 0;
63
64/* Global counters */
65PetscLogDouble petsc_BaseTime = 0.0;
66PetscLogDouble petsc_TotalFlops = 0.0; /* The number of flops */
67PetscLogDouble petsc_tmp_flops = 0.0; /* The incremental number of flops */
68PetscLogDouble petsc_send_ct = 0.0; /* The number of sends */
69PetscLogDouble petsc_recv_ct = 0.0; /* The number of receives */
70PetscLogDouble petsc_send_len = 0.0; /* The total length of all sent messages */
71PetscLogDouble petsc_recv_len = 0.0; /* The total length of all received messages */
72PetscLogDouble petsc_isend_ct = 0.0; /* The number of immediate sends */
73PetscLogDouble petsc_irecv_ct = 0.0; /* The number of immediate receives */
74PetscLogDouble petsc_isend_len = 0.0; /* The total length of all immediate send messages */
75PetscLogDouble petsc_irecv_len = 0.0; /* The total length of all immediate receive messages */
76PetscLogDouble petsc_wait_ct = 0.0; /* The number of waits */
77PetscLogDouble petsc_wait_any_ct = 0.0; /* The number of anywaits */
78PetscLogDouble petsc_wait_all_ct = 0.0; /* The number of waitalls */
79PetscLogDouble petsc_sum_of_waits_ct = 0.0; /* The total number of waits */
80PetscLogDouble petsc_allreduce_ct = 0.0; /* The number of reductions */
81PetscLogDouble petsc_gather_ct = 0.0; /* The number of gathers and gathervs */
82PetscLogDouble petsc_scatter_ct = 0.0; /* The number of scatters and scattervs */
83#if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
84PetscLogDouble petsc_ctog_ct = 0.0; /* The total number of CPU to GPU copies */
85PetscLogDouble petsc_gtoc_ct = 0.0; /* The total number of GPU to CPU copies */
86PetscLogDouble petsc_ctog_sz = 0.0; /* The total size of CPU to GPU copies */
87PetscLogDouble petsc_gtoc_sz = 0.0; /* The total size of GPU to CPU copies */
88#endif
89
90/* Logging functions */
91PetscErrorCode (*PetscLogPHC)(PetscObject) = NULL((void*)0);
92PetscErrorCode (*PetscLogPHD)(PetscObject) = NULL((void*)0);
93PetscErrorCode (*PetscLogPLB)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject) = NULL((void*)0);
94PetscErrorCode (*PetscLogPLE)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject) = NULL((void*)0);
95
96/* Tracing event logging variables */
97FILE *petsc_tracefile = NULL((void*)0);
98int petsc_tracelevel = 0;
99const char *petsc_traceblanks = " ";
100char petsc_tracespace[128] = " ";
101PetscLogDouble petsc_tracetime = 0.0;
102static PetscBool PetscLogInitializeCalled = PETSC_FALSE;
103
104PETSC_INTERNextern __attribute__((visibility ("hidden"))) PetscErrorCode PetscLogInitialize(void)
105{
106 int stage;
107 PetscBool opt;
108 PetscErrorCode ierr;
109
110 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 110; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
111 if (PetscLogInitializeCalled) PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
112 PetscLogInitializeCalled = PETSC_TRUE;
113
114 ierr = PetscOptionsHasName(NULL((void*)0),NULL((void*)0), "-log_exclude_actions", &opt);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),114,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
115 if (opt) petsc_logActions = PETSC_FALSE;
116 ierr = PetscOptionsHasName(NULL((void*)0),NULL((void*)0), "-log_exclude_objects", &opt);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),116,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
117 if (opt) petsc_logObjects = PETSC_FALSE;
118 if (petsc_logActions) {
119 ierr = PetscMalloc1(petsc_maxActions, &petsc_actions)PetscMallocA(1,PETSC_FALSE,119,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,(size_t)(petsc_maxActions)*sizeof(**(&petsc_actions)),(&
petsc_actions))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),119,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
120 }
121 if (petsc_logObjects) {
122 ierr = PetscMalloc1(petsc_maxObjects, &petsc_objects)PetscMallocA(1,PETSC_FALSE,122,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,(size_t)(petsc_maxObjects)*sizeof(**(&petsc_objects)),(&
petsc_objects))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),122,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
123 }
124 PetscLogPHC = PetscLogObjCreateDefault;
125 PetscLogPHD = PetscLogObjDestroyDefault;
126 /* Setup default logging structures */
127 ierr = PetscStageLogCreate(&petsc_stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),127,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
128 ierr = PetscStageLogRegister(petsc_stageLog, "Main Stage", &stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),128,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
129
130 /* All processors sync here for more consistent logging */
131 ierr = MPI_Barrier(PETSC_COMM_WORLD);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),131,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
132 PetscTime(&petsc_BaseTime);
133 ierr = PetscLogStagePush(stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),133,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
134 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
135}
136
137PETSC_INTERNextern __attribute__((visibility ("hidden"))) PetscErrorCode PetscLogFinalize(void)
138{
139 PetscStageLog stageLog;
140 PetscErrorCode ierr;
141
142 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 142; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
143 ierr = PetscFree(petsc_actions)((*PetscTrFree)((void*)(petsc_actions),143,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_actions) = 0,0))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),143,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
144 ierr = PetscFree(petsc_objects)((*PetscTrFree)((void*)(petsc_objects),144,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_objects) = 0,0))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),144,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
145 ierr = PetscLogNestedEnd();CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),145,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
146 ierr = PetscLogSet(NULL((void*)0), NULL((void*)0));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),146,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
147
148 /* Resetting phase */
149 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),149,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
150 ierr = PetscStageLogDestroy(stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),150,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
151
152 petsc_TotalFlops = 0.0;
153 petsc_numActions = 0;
154 petsc_numObjects = 0;
155 petsc_numObjectsDestroyed = 0;
156 petsc_maxActions = 100;
157 petsc_maxObjects = 100;
158 petsc_actions = NULL((void*)0);
159 petsc_objects = NULL((void*)0);
160 petsc_logActions = PETSC_FALSE;
161 petsc_logObjects = PETSC_FALSE;
162 petsc_BaseTime = 0.0;
163 petsc_TotalFlops = 0.0;
164 petsc_tmp_flops = 0.0;
165 petsc_send_ct = 0.0;
166 petsc_recv_ct = 0.0;
167 petsc_send_len = 0.0;
168 petsc_recv_len = 0.0;
169 petsc_isend_ct = 0.0;
170 petsc_irecv_ct = 0.0;
171 petsc_isend_len = 0.0;
172 petsc_irecv_len = 0.0;
173 petsc_wait_ct = 0.0;
174 petsc_wait_any_ct = 0.0;
175 petsc_wait_all_ct = 0.0;
176 petsc_sum_of_waits_ct = 0.0;
177 petsc_allreduce_ct = 0.0;
178 petsc_gather_ct = 0.0;
179 petsc_scatter_ct = 0.0;
180 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
181 petsc_ctog_ct = 0.0;
182 petsc_gtoc_ct = 0.0;
183 petsc_ctog_sz = 0.0;
184 petsc_gtoc_sz = 0.0;
185 #endif
186 PETSC_LARGEST_EVENT = PETSC_EVENT1311311;
187 PetscLogPHC = NULL((void*)0);
188 PetscLogPHD = NULL((void*)0);
189 petsc_tracefile = NULL((void*)0);
190 petsc_tracelevel = 0;
191 petsc_traceblanks = " ";
192 petsc_tracespace[0] = ' '; petsc_tracespace[1] = 0;
193 petsc_tracetime = 0.0;
194 PETSC_LARGEST_CLASSID = PETSC_SMALLEST_CLASSID1211211;
195 PETSC_OBJECT_CLASSID = 0;
196 petsc_stageLog = 0;
197 PetscLogInitializeCalled = PETSC_FALSE;
198 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
199}
200
201/*@C
202 PetscLogSet - Sets the logging functions called at the beginning and ending of every event.
203
204 Not Collective
205
206 Input Parameters:
207+ b - The function called at beginning of event
208- e - The function called at end of event
209
210 Level: developer
211
212.seealso: PetscLogDump(), PetscLogDefaultBegin(), PetscLogAllBegin(), PetscLogTraceBegin()
213@*/
214PetscErrorCode PetscLogSet(PetscErrorCode (*b)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject),
215 PetscErrorCode (*e)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject))
216{
217 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 217; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
218 PetscLogPLB = b;
219 PetscLogPLE = e;
220 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
221}
222
223/*@C
224 PetscLogDefaultBegin - Turns on logging of objects and events. This logs flop
225 rates and object creation and should not slow programs down too much.
226 This routine may be called more than once.
227
228 Logically Collective over PETSC_COMM_WORLD
229
230 Options Database Keys:
231. -log_view [viewertype:filename:viewerformat] - Prints summary of flop and timing information to the
232 screen (for code configured with --with-log=1 (which is the default))
233
234 Usage:
235.vb
236 PetscInitialize(...);
237 PetscLogDefaultBegin();
238 ... code ...
239 PetscLogView(viewer); or PetscLogDump();
240 PetscFinalize();
241.ve
242
243 Notes:
244 PetscLogView(viewer) or PetscLogDump() actually cause the printing of
245 the logging information.
246
247 Level: advanced
248
249.seealso: PetscLogDump(), PetscLogAllBegin(), PetscLogView(), PetscLogTraceBegin()
250@*/
251PetscErrorCode PetscLogDefaultBegin(void)
252{
253 PetscErrorCode ierr;
254
255 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 255; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
256 ierr = PetscLogSet(PetscLogEventBeginDefault, PetscLogEventEndDefault);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),256,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
257 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
258}
259
260/*@C
261 PetscLogAllBegin - Turns on extensive logging of objects and events. Logs
262 all events. This creates large log files and slows the program down.
263
264 Logically Collective on PETSC_COMM_WORLD
265
266 Options Database Keys:
267. -log_all - Prints extensive log information
268
269 Usage:
270.vb
271 PetscInitialize(...);
272 PetscLogAllBegin();
273 ... code ...
274 PetscLogDump(filename);
275 PetscFinalize();
276.ve
277
278 Notes:
279 A related routine is PetscLogDefaultBegin() (with the options key -log), which is
280 intended for production runs since it logs only flop rates and object
281 creation (and shouldn't significantly slow the programs).
282
283 Level: advanced
284
285.seealso: PetscLogDump(), PetscLogDefaultBegin(), PetscLogTraceBegin()
286@*/
287PetscErrorCode PetscLogAllBegin(void)
288{
289 PetscErrorCode ierr;
290
291 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 291; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
292 ierr = PetscLogSet(PetscLogEventBeginComplete, PetscLogEventEndComplete);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),292,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
293 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
294}
295
296/*@
297 PetscLogTraceBegin - Activates trace logging. Every time a PETSc event
298 begins or ends, the event name is printed.
299
300 Logically Collective on PETSC_COMM_WORLD
301
302 Input Parameter:
303. file - The file to print trace in (e.g. stdout)
304
305 Options Database Key:
306. -log_trace [filename] - Activates PetscLogTraceBegin()
307
308 Notes:
309 PetscLogTraceBegin() prints the processor number, the execution time (sec),
310 then "Event begin:" or "Event end:" followed by the event name.
311
312 PetscLogTraceBegin() allows tracing of all PETSc calls, which is useful
313 to determine where a program is hanging without running in the
314 debugger. Can be used in conjunction with the -info option.
315
316 Level: intermediate
317
318.seealso: PetscLogDump(), PetscLogAllBegin(), PetscLogView(), PetscLogDefaultBegin()
319@*/
320PetscErrorCode PetscLogTraceBegin(FILE *file)
321{
322 PetscErrorCode ierr;
323
324 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 324; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
325 petsc_tracefile = file;
326
327 ierr = PetscLogSet(PetscLogEventBeginTrace, PetscLogEventEndTrace);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),327,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
328 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
329}
330
331/*@
332 PetscLogActions - Determines whether actions are logged for the graphical viewer.
333
334 Not Collective
335
336 Input Parameter:
337. flag - PETSC_TRUE if actions are to be logged
338
339 Level: intermediate
340
341 Note: Logging of actions continues to consume more memory as the program
342 runs. Long running programs should consider turning this feature off.
343
344 Options Database Keys:
345. -log_exclude_actions - Turns off actions logging
346
347.seealso: PetscLogStagePush(), PetscLogStagePop()
348@*/
349PetscErrorCode PetscLogActions(PetscBool flag)
350{
351 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 351; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
352 petsc_logActions = flag;
353 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
354}
355
356/*@
357 PetscLogObjects - Determines whether objects are logged for the graphical viewer.
358
359 Not Collective
360
361 Input Parameter:
362. flag - PETSC_TRUE if objects are to be logged
363
364 Level: intermediate
365
366 Note: Logging of objects continues to consume more memory as the program
367 runs. Long running programs should consider turning this feature off.
368
369 Options Database Keys:
370. -log_exclude_objects - Turns off objects logging
371
372.seealso: PetscLogStagePush(), PetscLogStagePop()
373@*/
374PetscErrorCode PetscLogObjects(PetscBool flag)
375{
376 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 376; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
377 petsc_logObjects = flag;
378 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
379}
380
381/*------------------------------------------------ Stage Functions --------------------------------------------------*/
382/*@C
383 PetscLogStageRegister - Attaches a character string name to a logging stage.
384
385 Not Collective
386
387 Input Parameter:
388. sname - The name to associate with that stage
389
390 Output Parameter:
391. stage - The stage number
392
393 Level: intermediate
394
395.seealso: PetscLogStagePush(), PetscLogStagePop()
396@*/
397PetscErrorCode PetscLogStageRegister(const char sname[],PetscLogStage *stage)
398{
399 PetscStageLog stageLog;
400 PetscLogEvent event;
401 PetscErrorCode ierr;
402
403 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 403; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
404 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),404,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
405 ierr = PetscStageLogRegister(stageLog, sname, stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),405,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
406 /* Copy events already changed in the main stage, this sucks */
407 ierr = PetscEventPerfLogEnsureSize(stageLog->stageInfo[*stage].eventLog, stageLog->eventLog->numEvents);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),407,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
408 for (event = 0; event < stageLog->eventLog->numEvents; event++) {
409 ierr = PetscEventPerfInfoCopy(&stageLog->stageInfo[0].eventLog->eventInfo[event],&stageLog->stageInfo[*stage].eventLog->eventInfo[event]);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),409,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
410 }
411 ierr = PetscClassPerfLogEnsureSize(stageLog->stageInfo[*stage].classLog, stageLog->classLog->numClasses);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),411,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
412 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
413}
414
415/*@C
416 PetscLogStagePush - This function pushes a stage on the stack.
417
418 Not Collective
419
420 Input Parameter:
421. stage - The stage on which to log
422
423 Usage:
424 If the option -log_sumary is used to run the program containing the
425 following code, then 2 sets of summary data will be printed during
426 PetscFinalize().
427.vb
428 PetscInitialize(int *argc,char ***args,0,0);
429 [stage 0 of code]
430 PetscLogStagePush(1);
431 [stage 1 of code]
432 PetscLogStagePop();
433 PetscBarrier(...);
434 [more stage 0 of code]
435 PetscFinalize();
436.ve
437
438 Notes:
439 Use PetscLogStageRegister() to register a stage.
440
441 Level: intermediate
442
443.seealso: PetscLogStagePop(), PetscLogStageRegister(), PetscBarrier()
444@*/
445PetscErrorCode PetscLogStagePush(PetscLogStage stage)
446{
447 PetscStageLog stageLog;
448 PetscErrorCode ierr;
449
450 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 450; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
451 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),451,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
452 ierr = PetscStageLogPush(stageLog, stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),452,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
453 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
454}
455
456/*@C
457 PetscLogStagePop - This function pops a stage from the stack.
458
459 Not Collective
460
461 Usage:
462 If the option -log_sumary is used to run the program containing the
463 following code, then 2 sets of summary data will be printed during
464 PetscFinalize().
465.vb
466 PetscInitialize(int *argc,char ***args,0,0);
467 [stage 0 of code]
468 PetscLogStagePush(1);
469 [stage 1 of code]
470 PetscLogStagePop();
471 PetscBarrier(...);
472 [more stage 0 of code]
473 PetscFinalize();
474.ve
475
476 Notes:
477 Use PetscLogStageRegister() to register a stage.
478
479 Level: intermediate
480
481.seealso: PetscLogStagePush(), PetscLogStageRegister(), PetscBarrier()
482@*/
483PetscErrorCode PetscLogStagePop(void)
484{
485 PetscStageLog stageLog;
486 PetscErrorCode ierr;
487
488 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 488; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
489 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),489,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
490 ierr = PetscStageLogPop(stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),490,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
491 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
492}
493
494/*@
495 PetscLogStageSetActive - Determines stage activity for PetscLogEventBegin() and PetscLogEventEnd().
496
497 Not Collective
498
499 Input Parameters:
500+ stage - The stage
501- isActive - The activity flag, PETSC_TRUE for logging, else PETSC_FALSE (defaults to PETSC_TRUE)
502
503 Level: intermediate
504
505.seealso: PetscLogStagePush(), PetscLogStagePop(), PetscLogEventBegin(), PetscLogEventEnd(), PetscPreLoadBegin(), PetscPreLoadEnd(), PetscPreLoadStage()
506@*/
507PetscErrorCode PetscLogStageSetActive(PetscLogStage stage, PetscBool isActive)
508{
509 PetscStageLog stageLog;
510 PetscErrorCode ierr;
511
512 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 512; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
513 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),513,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
514 ierr = PetscStageLogSetActive(stageLog, stage, isActive);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),514,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
515 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
516}
517
518/*@
519 PetscLogStageGetActive - Returns stage activity for PetscLogEventBegin() and PetscLogEventEnd().
520
521 Not Collective
522
523 Input Parameter:
524. stage - The stage
525
526 Output Parameter:
527. isActive - The activity flag, PETSC_TRUE for logging, else PETSC_FALSE (defaults to PETSC_TRUE)
528
529 Level: intermediate
530
531.seealso: PetscLogStagePush(), PetscLogStagePop(), PetscLogEventBegin(), PetscLogEventEnd(), PetscPreLoadBegin(), PetscPreLoadEnd(), PetscPreLoadStage()
532@*/
533PetscErrorCode PetscLogStageGetActive(PetscLogStage stage, PetscBool *isActive)
534{
535 PetscStageLog stageLog;
536 PetscErrorCode ierr;
537
538 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 538; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
539 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),539,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
540 ierr = PetscStageLogGetActive(stageLog, stage, isActive);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),540,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
541 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
542}
543
544/*@
545 PetscLogStageSetVisible - Determines stage visibility in PetscLogView()
546
547 Not Collective
548
549 Input Parameters:
550+ stage - The stage
551- isVisible - The visibility flag, PETSC_TRUE to print, else PETSC_FALSE (defaults to PETSC_TRUE)
552
553 Level: intermediate
554
555.seealso: PetscLogStagePush(), PetscLogStagePop(), PetscLogView()
556@*/
557PetscErrorCode PetscLogStageSetVisible(PetscLogStage stage, PetscBool isVisible)
558{
559 PetscStageLog stageLog;
560 PetscErrorCode ierr;
561
562 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 562; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
563 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),563,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
564 ierr = PetscStageLogSetVisible(stageLog, stage, isVisible);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),564,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
565 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
566}
567
568/*@
569 PetscLogStageGetVisible - Returns stage visibility in PetscLogView()
570
571 Not Collective
572
573 Input Parameter:
574. stage - The stage
575
576 Output Parameter:
577. isVisible - The visibility flag, PETSC_TRUE to print, else PETSC_FALSE (defaults to PETSC_TRUE)
578
579 Level: intermediate
580
581.seealso: PetscLogStagePush(), PetscLogStagePop(), PetscLogView()
582@*/
583PetscErrorCode PetscLogStageGetVisible(PetscLogStage stage, PetscBool *isVisible)
584{
585 PetscStageLog stageLog;
586 PetscErrorCode ierr;
587
588 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 588; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
589 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),589,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
590 ierr = PetscStageLogGetVisible(stageLog, stage, isVisible);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),590,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
591 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
592}
593
594/*@C
595 PetscLogStageGetId - Returns the stage id when given the stage name.
596
597 Not Collective
598
599 Input Parameter:
600. name - The stage name
601
602 Output Parameter:
603. stage - The stage, , or -1 if no stage with that name exists
604
605 Level: intermediate
606
607.seealso: PetscLogStagePush(), PetscLogStagePop(), PetscPreLoadBegin(), PetscPreLoadEnd(), PetscPreLoadStage()
608@*/
609PetscErrorCode PetscLogStageGetId(const char name[], PetscLogStage *stage)
610{
611 PetscStageLog stageLog;
612 PetscErrorCode ierr;
613
614 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 614; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
615 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),615,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
616 ierr = PetscStageLogGetStage(stageLog, name, stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),616,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
617 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
618}
619
620/*------------------------------------------------ Event Functions --------------------------------------------------*/
621/*@C
622 PetscLogEventRegister - Registers an event name for logging operations in an application code.
623
624 Not Collective
625
626 Input Parameter:
627+ name - The name associated with the event
628- classid - The classid associated to the class for this event, obtain either with
629 PetscClassIdRegister() or use a predefined one such as KSP_CLASSID, SNES_CLASSID, the predefined ones
630 are only available in C code
631
632 Output Parameter:
633. event - The event id for use with PetscLogEventBegin() and PetscLogEventEnd().
634
635 Example of Usage:
636.vb
637 PetscLogEvent USER_EVENT;
638 PetscClassId classid;
639 PetscLogDouble user_event_flops;
640 PetscClassIdRegister("class name",&classid);
641 PetscLogEventRegister("User event name",classid,&USER_EVENT);
642 PetscLogEventBegin(USER_EVENT,0,0,0,0);
643 [code segment to monitor]
644 PetscLogFlops(user_event_flops);
645 PetscLogEventEnd(USER_EVENT,0,0,0,0);
646.ve
647
648 Notes:
649 PETSc automatically logs library events if the code has been
650 configured with --with-log (which is the default) and
651 -log_view or -log_all is specified. PetscLogEventRegister() is
652 intended for logging user events to supplement this PETSc
653 information.
654
655 PETSc can gather data for use with the utilities Jumpshot
656 (part of the MPICH distribution). If PETSc has been compiled
657 with flag -DPETSC_HAVE_MPE (MPE is an additional utility within
658 MPICH), the user can employ another command line option, -log_mpe,
659 to create a logfile, "mpe.log", which can be visualized
660 Jumpshot.
661
662 The classid is associated with each event so that classes of events
663 can be disabled simultaneously, such as all matrix events. The user
664 can either use an existing classid, such as MAT_CLASSID, or create
665 their own as shown in the example.
666
667 If an existing event with the same name exists, its event handle is
668 returned instead of creating a new event.
669
670 Level: intermediate
671
672.seealso: PetscLogEventBegin(), PetscLogEventEnd(), PetscLogFlops(),
673 PetscLogEventActivate(), PetscLogEventDeactivate(), PetscClassIdRegister()
674@*/
675PetscErrorCode PetscLogEventRegister(const char name[],PetscClassId classid,PetscLogEvent *event)
676{
677 PetscStageLog stageLog;
678 int stage;
679 PetscErrorCode ierr;
680
681 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 681; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
682 *event = PETSC_DECIDE-1;
683 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),683,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
684 ierr = PetscEventRegLogGetEvent(stageLog->eventLog, name, event);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),684,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
685 if (*event > 0) PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
686 ierr = PetscEventRegLogRegister(stageLog->eventLog, name, classid, event);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),686,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
687 for (stage = 0; stage < stageLog->numStages; stage++) {
688 ierr = PetscEventPerfLogEnsureSize(stageLog->stageInfo[stage].eventLog, stageLog->eventLog->numEvents);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),688,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
689 ierr = PetscClassPerfLogEnsureSize(stageLog->stageInfo[stage].classLog, stageLog->classLog->numClasses);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),689,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
690 }
691 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
692}
693
694/*@
695 PetscLogEventSetCollective - Indicates that a particular event is collective.
696
697 Not Collective
698
699 Input Parameter:
700+ event - The event id
701- collective - Bolean flag indicating whether a particular event is collective
702
703 Note:
704 New events returned from PetscLogEventRegister() are collective by default.
705
706 Level: developer
707
708.seealso: PetscLogEventRegister()
709@*/
710PetscErrorCode PetscLogEventSetCollective(PetscLogEvent event,PetscBool collective)
711{
712 PetscStageLog stageLog;
713 PetscEventRegLog eventRegLog;
714 PetscErrorCode ierr;
715
716 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 716; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
717 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),717,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
718 ierr = PetscStageLogGetEventRegLog(stageLog,&eventRegLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),718,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
719 if (event < 0 || event > eventRegLog->numEvents) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Invalid event id")return PetscError(((MPI_Comm)0x44000001),719,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,63,PETSC_ERROR_INITIAL,"Invalid event id")
;
720 eventRegLog->eventInfo[event].collective = collective;
721 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
722}
723
724/*@
725 PetscLogEventIncludeClass - Activates event logging for a PETSc object class in every stage.
726
727 Not Collective
728
729 Input Parameter:
730. classid - The object class, for example MAT_CLASSID, SNES_CLASSID, etc.
731
732 Level: developer
733
734.seealso: PetscLogEventActivateClass(),PetscLogEventDeactivateClass(),PetscLogEventActivate(),PetscLogEventDeactivate()
735@*/
736PetscErrorCode PetscLogEventIncludeClass(PetscClassId classid)
737{
738 PetscStageLog stageLog;
739 int stage;
740 PetscErrorCode ierr;
741
742 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 742; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
743 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),743,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
744 for (stage = 0; stage < stageLog->numStages; stage++) {
745 ierr = PetscEventPerfLogActivateClass(stageLog->stageInfo[stage].eventLog, stageLog->eventLog, classid);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),745,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
746 }
747 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
748}
749
750/*@
751 PetscLogEventExcludeClass - Deactivates event logging for a PETSc object class in every stage.
752
753 Not Collective
754
755 Input Parameter:
756. classid - The object class, for example MAT_CLASSID, SNES_CLASSID, etc.
757
758 Level: developer
759
760.seealso: PetscLogEventDeactivateClass(),PetscLogEventActivateClass(),PetscLogEventDeactivate(),PetscLogEventActivate()
761@*/
762PetscErrorCode PetscLogEventExcludeClass(PetscClassId classid)
763{
764 PetscStageLog stageLog;
765 int stage;
766 PetscErrorCode ierr;
767
768 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 768; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
769 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),769,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
770 for (stage = 0; stage < stageLog->numStages; stage++) {
771 ierr = PetscEventPerfLogDeactivateClass(stageLog->stageInfo[stage].eventLog, stageLog->eventLog, classid);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),771,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
772 }
773 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
774}
775
776/*@
777 PetscLogEventActivate - Indicates that a particular event should be logged.
778
779 Not Collective
780
781 Input Parameter:
782. event - The event id
783
784 Usage:
785.vb
786 PetscLogEventDeactivate(VEC_SetValues);
787 [code where you do not want to log VecSetValues()]
788 PetscLogEventActivate(VEC_SetValues);
789 [code where you do want to log VecSetValues()]
790.ve
791
792 Note:
793 The event may be either a pre-defined PETSc event (found in include/petsclog.h)
794 or an event number obtained with PetscLogEventRegister().
795
796 Level: advanced
797
798.seealso: PlogEventDeactivate()
799@*/
800PetscErrorCode PetscLogEventActivate(PetscLogEvent event)
801{
802 PetscStageLog stageLog;
803 int stage;
804 PetscErrorCode ierr;
805
806 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 806; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
807 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),807,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
808 ierr = PetscStageLogGetCurrent(stageLog, &stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),808,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
809 ierr = PetscEventPerfLogActivate(stageLog->stageInfo[stage].eventLog, event);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),809,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
810 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
811}
812
813/*@
814 PetscLogEventDeactivate - Indicates that a particular event should not be logged.
815
816 Not Collective
817
818 Input Parameter:
819. event - The event id
820
821 Usage:
822.vb
823 PetscLogEventDeactivate(VEC_SetValues);
824 [code where you do not want to log VecSetValues()]
825 PetscLogEventActivate(VEC_SetValues);
826 [code where you do want to log VecSetValues()]
827.ve
828
829 Note:
830 The event may be either a pre-defined PETSc event (found in
831 include/petsclog.h) or an event number obtained with PetscLogEventRegister()).
832
833 Level: advanced
834
835.seealso: PlogEventActivate()
836@*/
837PetscErrorCode PetscLogEventDeactivate(PetscLogEvent event)
838{
839 PetscStageLog stageLog;
840 int stage;
841 PetscErrorCode ierr;
842
843 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 843; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
844 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),844,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
845 ierr = PetscStageLogGetCurrent(stageLog, &stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),845,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
846 ierr = PetscEventPerfLogDeactivate(stageLog->stageInfo[stage].eventLog, event);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),846,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
847 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
848}
849
850/*@
851 PetscLogEventSetActiveAll - Sets the event activity in every stage.
852
853 Not Collective
854
855 Input Parameters:
856+ event - The event id
857- isActive - The activity flag determining whether the event is logged
858
859 Level: advanced
860
861.seealso: PlogEventActivate(),PlogEventDeactivate()
862@*/
863PetscErrorCode PetscLogEventSetActiveAll(PetscLogEvent event, PetscBool isActive)
864{
865 PetscStageLog stageLog;
866 int stage;
867 PetscErrorCode ierr;
868
869 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 869; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
870 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),870,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
871 for (stage = 0; stage < stageLog->numStages; stage++) {
872 if (isActive) {
873 ierr = PetscEventPerfLogActivate(stageLog->stageInfo[stage].eventLog, event);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),873,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
874 } else {
875 ierr = PetscEventPerfLogDeactivate(stageLog->stageInfo[stage].eventLog, event);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),875,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
876 }
877 }
878 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
879}
880
881/*@
882 PetscLogEventActivateClass - Activates event logging for a PETSc object class.
883
884 Not Collective
885
886 Input Parameter:
887. classid - The event class, for example MAT_CLASSID, SNES_CLASSID, etc.
888
889 Level: developer
890
891.seealso: PetscLogEventDeactivateClass(),PetscLogEventActivate(),PetscLogEventDeactivate()
892@*/
893PetscErrorCode PetscLogEventActivateClass(PetscClassId classid)
894{
895 PetscStageLog stageLog;
896 int stage;
897 PetscErrorCode ierr;
898
899 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 899; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
900 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),900,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
901 ierr = PetscStageLogGetCurrent(stageLog, &stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),901,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
902 ierr = PetscEventPerfLogActivateClass(stageLog->stageInfo[stage].eventLog, stageLog->eventLog, classid);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),902,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
903 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
904}
905
906/*@
907 PetscLogEventDeactivateClass - Deactivates event logging for a PETSc object class.
908
909 Not Collective
910
911 Input Parameter:
912. classid - The event class, for example MAT_CLASSID, SNES_CLASSID, etc.
913
914 Level: developer
915
916.seealso: PetscLogEventActivateClass(),PetscLogEventActivate(),PetscLogEventDeactivate()
917@*/
918PetscErrorCode PetscLogEventDeactivateClass(PetscClassId classid)
919{
920 PetscStageLog stageLog;
921 int stage;
922 PetscErrorCode ierr;
923
924 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 924; petscstack->petscroutine
[petscstack->currentsize] = PETSC_TRUE; petscstack->currentsize
++; } if (petscstack) { petscstack->hotdepth += (PETSC_FALSE
|| petscstack->hotdepth); } ; } while (0); ; } while (0)
;
925 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),925,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
926 ierr = PetscStageLogGetCurrent(stageLog, &stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),926,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
927 ierr = PetscEventPerfLogDeactivateClass(stageLog->stageInfo[stage].eventLog, stageLog->eventLog, classid);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),927,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
928 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
929}
930
931/*MC
932 PetscLogEventSync - Synchronizes the beginning of a user event.
933
934 Synopsis:
935 #include <petsclog.h>
936 PetscErrorCode PetscLogEventSync(int e,MPI_Comm comm)
937
938 Collective
939
940 Input Parameters:
941+ e - integer associated with the event obtained from PetscLogEventRegister()
942- comm - an MPI communicator
943
944 Usage:
945.vb
946 PetscLogEvent USER_EVENT;
947 PetscLogEventRegister("User event",0,&USER_EVENT);
948 PetscLogEventSync(USER_EVENT,PETSC_COMM_WORLD);
949 PetscLogEventBegin(USER_EVENT,0,0,0,0);
950 [code segment to monitor]
951 PetscLogEventEnd(USER_EVENT,0,0,0,0);
952.ve
953
954 Notes:
955 This routine should be called only if there is not a
956 PetscObject available to pass to PetscLogEventBegin().
957
958 Level: developer
959
960.seealso: PetscLogEventRegister(), PetscLogEventBegin(), PetscLogEventEnd()
961
962M*/
963
964/*MC
965 PetscLogEventBegin - Logs the beginning of a user event.
966
967 Synopsis:
968 #include <petsclog.h>
969 PetscErrorCode PetscLogEventBegin(int e,PetscObject o1,PetscObject o2,PetscObject o3,PetscObject o4)
970
971 Not Collective
972
973 Input Parameters:
974+ e - integer associated with the event obtained from PetscLogEventRegister()
975- o1,o2,o3,o4 - objects associated with the event, or 0
976
977
978 Fortran Synopsis:
979 void PetscLogEventBegin(int e,PetscErrorCode ierr)
980
981 Usage:
982.vb
983 PetscLogEvent USER_EVENT;
984 PetscLogDouble user_event_flops;
985 PetscLogEventRegister("User event",0,&USER_EVENT);
986 PetscLogEventBegin(USER_EVENT,0,0,0,0);
987 [code segment to monitor]
988 PetscLogFlops(user_event_flops);
989 PetscLogEventEnd(USER_EVENT,0,0,0,0);
990.ve
991
992 Notes:
993 You need to register each integer event with the command
994 PetscLogEventRegister().
995
996 Level: intermediate
997
998.seealso: PetscLogEventRegister(), PetscLogEventEnd(), PetscLogFlops()
999
1000M*/
1001
1002/*MC
1003 PetscLogEventEnd - Log the end of a user event.
1004
1005 Synopsis:
1006 #include <petsclog.h>
1007 PetscErrorCode PetscLogEventEnd(int e,PetscObject o1,PetscObject o2,PetscObject o3,PetscObject o4)
1008
1009 Not Collective
1010
1011 Input Parameters:
1012+ e - integer associated with the event obtained with PetscLogEventRegister()
1013- o1,o2,o3,o4 - objects associated with the event, or 0
1014
1015
1016 Fortran Synopsis:
1017 void PetscLogEventEnd(int e,PetscErrorCode ierr)
1018
1019 Usage:
1020.vb
1021 PetscLogEvent USER_EVENT;
1022 PetscLogDouble user_event_flops;
1023 PetscLogEventRegister("User event",0,&USER_EVENT,);
1024 PetscLogEventBegin(USER_EVENT,0,0,0,0);
1025 [code segment to monitor]
1026 PetscLogFlops(user_event_flops);
1027 PetscLogEventEnd(USER_EVENT,0,0,0,0);
1028.ve
1029
1030 Notes:
1031 You should also register each additional integer event with the command
1032 PetscLogEventRegister().
1033
1034 Level: intermediate
1035
1036.seealso: PetscLogEventRegister(), PetscLogEventBegin(), PetscLogFlops()
1037
1038M*/
1039
1040/*@C
1041 PetscLogEventGetId - Returns the event id when given the event name.
1042
1043 Not Collective
1044
1045 Input Parameter:
1046. name - The event name
1047
1048 Output Parameter:
1049. event - The event, or -1 if no event with that name exists
1050
1051 Level: intermediate
1052
1053.seealso: PetscLogEventBegin(), PetscLogEventEnd(), PetscLogStageGetId()
1054@*/
1055PetscErrorCode PetscLogEventGetId(const char name[], PetscLogEvent *event)
1056{
1057 PetscStageLog stageLog;
1058 PetscErrorCode ierr;
1059
1060 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1060; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1061 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1061,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1062 ierr = PetscEventRegLogGetEvent(stageLog->eventLog, name, event);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1062,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1063 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1064}
1065
1066
1067/*------------------------------------------------ Output Functions -------------------------------------------------*/
1068/*@C
1069 PetscLogDump - Dumps logs of objects to a file. This file is intended to
1070 be read by bin/petscview. This program no longer exists.
1071
1072 Collective on PETSC_COMM_WORLD
1073
1074 Input Parameter:
1075. name - an optional file name
1076
1077 Usage:
1078.vb
1079 PetscInitialize(...);
1080 PetscLogDefaultBegin(); or PetscLogAllBegin();
1081 ... code ...
1082 PetscLogDump(filename);
1083 PetscFinalize();
1084.ve
1085
1086 Notes:
1087 The default file name is
1088$ Log.<rank>
1089 where <rank> is the processor number. If no name is specified,
1090 this file will be used.
1091
1092 Level: advanced
1093
1094.seealso: PetscLogDefaultBegin(), PetscLogAllBegin(), PetscLogView()
1095@*/
1096PetscErrorCode PetscLogDump(const char sname[])
1097{
1098 PetscStageLog stageLog;
1099 PetscEventPerfInfo *eventInfo;
1100 FILE *fd;
1101 char file[PETSC_MAX_PATH_LEN4096], fname[PETSC_MAX_PATH_LEN4096];
1102 PetscLogDouble flops, _TotalTime;
1103 PetscMPIInt rank;
1104 int action, object, curStage;
1105 PetscLogEvent event;
1106 PetscErrorCode ierr;
1107
1108 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1108; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1109 /* Calculate the total elapsed time */
1110 PetscTime(&_TotalTime);
1111 _TotalTime -= petsc_BaseTime;
1112 /* Open log file */
1113 ierr = MPI_Comm_rank(PETSC_COMM_WORLD, &rank);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1113,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1114 if (sname && sname[0]) sprintf(file, "%s.%d", sname, rank);
1115 else sprintf(file, "Log.%d", rank);
1116 ierr = PetscFixFilename(file, fname);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1116,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1117 ierr = PetscFOpen(PETSC_COMM_WORLD, fname, "w", &fd);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1117,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1118 if ((!rank) && (!fd)) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN, "Cannot open file: %s", fname)return PetscError(((MPI_Comm)0x44000001),1118,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,65,PETSC_ERROR_INITIAL,"Cannot open file: %s",fname)
;
1119 /* Output totals */
1120 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Total Flop %14e %16.8e\n", petsc_TotalFlops, _TotalTime);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1120,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1121 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Clock Resolution %g\n", 0.0);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1121,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1122 /* Output actions */
1123 if (petsc_logActions) {
1124 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Actions accomplished %d\n", petsc_numActions);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1124,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1125 for (action = 0; action < petsc_numActions; action++) {
1126 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "%g %d %d %d %d %d %d %g %g %g\n",
1127 petsc_actions[action].time, petsc_actions[action].action, (int)petsc_actions[action].event, (int)petsc_actions[action].classid, petsc_actions[action].id1,
1128 petsc_actions[action].id2, petsc_actions[action].id3, petsc_actions[action].flops, petsc_actions[action].mem, petsc_actions[action].maxmem);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1128,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1129 }
1130 }
1131 /* Output objects */
1132 if (petsc_logObjects) {
1133 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Objects created %d destroyed %d\n", petsc_numObjects, petsc_numObjectsDestroyed);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1133,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1134 for (object = 0; object < petsc_numObjects; object++) {
1135 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Parent ID: %d Memory: %d\n", petsc_objects[object].parent, (int) petsc_objects[object].mem);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1135,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1136 if (!petsc_objects[object].name[0]) {
1137 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd,"No Name\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1137,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1138 } else {
1139 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Name: %s\n", petsc_objects[object].name);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1139,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1140 }
1141 if (petsc_objects[object].info[0] != 0) {
1142 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "No Info\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1142,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1143 } else {
1144 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Info: %s\n", petsc_objects[object].info);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1144,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1145 }
1146 }
1147 }
1148 /* Output events */
1149 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "Event log:\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1149,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1150 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1150,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1151 ierr = PetscIntStackTop(stageLog->stack, &curStage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1151,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1152 eventInfo = stageLog->stageInfo[curStage].eventLog->eventInfo;
1153 for (event = 0; event < stageLog->stageInfo[curStage].eventLog->numEvents; event++) {
1154 if (eventInfo[event].time != 0.0) flops = eventInfo[event].flops/eventInfo[event].time;
1155 else flops = 0.0;
1156 ierr = PetscFPrintf(PETSC_COMM_WORLD, fd, "%d %16d %16g %16g %16g\n", event, eventInfo[event].count,
1157 eventInfo[event].flops, eventInfo[event].time, flops);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1157,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1158 }
1159 ierr = PetscFClose(PETSC_COMM_WORLD, fd);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1159,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1160 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1161}
1162
1163/*
1164 PetscLogView_Detailed - Each process prints the times for its own events
1165
1166*/
1167PetscErrorCode PetscLogView_Detailed(PetscViewer viewer)
1168{
1169 PetscStageLog stageLog;
1170 PetscEventPerfInfo *eventInfo = NULL((void*)0), *stageInfo = NULL((void*)0);
1171 PetscLogDouble locTotalTime, numRed, maxMem;
1172 int numStages,numEvents,stage,event;
1173 MPI_Comm comm = PetscObjectComm((PetscObject) viewer);
1174 PetscMPIInt rank,size;
1175 PetscErrorCode ierr;
1176
1177 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1177; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1178 ierr = MPI_Comm_size(comm, &size);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1178,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1179 ierr = MPI_Comm_rank(comm, &rank);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1179,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1180 /* Must preserve reduction count before we go on */
1181 numRed = petsc_allreduce_ct + petsc_gather_ct + petsc_scatter_ct;
1182 /* Get the total elapsed time */
1183 PetscTime(&locTotalTime); locTotalTime -= petsc_BaseTime;
1184 ierr = PetscViewerASCIIPrintf(viewer,"size = %d\n",size);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1184,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1185 ierr = PetscViewerASCIIPrintf(viewer,"LocalTimes = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1185,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1186 ierr = PetscViewerASCIIPrintf(viewer,"LocalMessages = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1186,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1187 ierr = PetscViewerASCIIPrintf(viewer,"LocalMessageLens = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1187,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1188 ierr = PetscViewerASCIIPrintf(viewer,"LocalReductions = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1188,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1189 ierr = PetscViewerASCIIPrintf(viewer,"LocalFlop = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1189,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1190 ierr = PetscViewerASCIIPrintf(viewer,"LocalObjects = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1190,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1191 ierr = PetscViewerASCIIPrintf(viewer,"LocalMemory = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1191,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1192 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1192,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1193 ierr = MPIU_Allreduce(&stageLog->numStages, &numStages, 1, MPI_INT, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1193,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&stageLog->numStages),(&numStages)
,(1),(((MPI_Datatype)0x4c000405)),((MPI_Op)(0x58000001)),(comm
))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1193,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1194 ierr = PetscViewerASCIIPrintf(viewer,"Stages = {}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1194,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1195 for (stage=0; stage<numStages; stage++) {
1196 ierr = PetscViewerASCIIPrintf(viewer,"Stages[\"%s\"] = {}\n",stageLog->stageInfo[stage].name);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1196,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1197 ierr = PetscViewerASCIIPrintf(viewer,"Stages[\"%s\"][\"summary\"] = {}\n",stageLog->stageInfo[stage].name);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1197,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1198 ierr = MPIU_Allreduce(&stageLog->stageInfo[stage].eventLog->numEvents, &numEvents, 1, MPI_INT, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1198,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&stageLog->stageInfo[stage].eventLog->
numEvents),(&numEvents),(1),(((MPI_Datatype)0x4c000405)),
((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1198,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1199 for (event = 0; event < numEvents; event++) {
1200 ierr = PetscViewerASCIIPrintf(viewer,"Stages[\"%s\"][\"%s\"] = {}\n",stageLog->stageInfo[stage].name,stageLog->eventLog->eventInfo[event].name);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1200,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1201 }
1202 }
1203 ierr = PetscMallocGetMaximumUsage(&maxMem);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1203,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1204 ierr = PetscViewerASCIIPushSynchronized(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1204,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1205 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"LocalTimes[%d] = %g\n",rank,locTotalTime);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1205,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1206 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"LocalMessages[%d] = %g\n",rank,(petsc_irecv_ct + petsc_isend_ct + petsc_recv_ct + petsc_send_ct));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1206,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1207 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"LocalMessageLens[%d] = %g\n",rank,(petsc_irecv_len + petsc_isend_len + petsc_recv_len + petsc_send_len));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1207,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1208 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"LocalReductions[%d] = %g\n",rank,numRed);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1208,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1209 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"LocalFlop[%d] = %g\n",rank,petsc_TotalFlops);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1209,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1210 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"LocalObjects[%d] = %d\n",rank,petsc_numObjects);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1210,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1211 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"LocalMemory[%d] = %g\n",rank,maxMem);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1211,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1212 ierr = PetscViewerFlush(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1212,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1213 for (stage=0; stage<numStages; stage++) {
1214 stageInfo = &stageLog->stageInfo[stage].perfInfo;
1215 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"Stages[\"%s\"][\"summary\"][%d] = {\"time\" : %g, \"numMessages\" : %g, \"messageLength\" : %g, \"numReductions\" : %g, \"flop\" : %g}\n",
1216 stageLog->stageInfo[stage].name,rank,
1217 stageInfo->time,stageInfo->numMessages,stageInfo->messageLength,stageInfo->numReductions,stageInfo->flops);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1217,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1218 ierr = MPIU_Allreduce(&stageLog->stageInfo[stage].eventLog->numEvents, &numEvents, 1, MPI_INT, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1218,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&stageLog->stageInfo[stage].eventLog->
numEvents),(&numEvents),(1),(((MPI_Datatype)0x4c000405)),
((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1218,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1219 for (event = 0; event < numEvents; event++) {
1220 eventInfo = &stageLog->stageInfo[stage].eventLog->eventInfo[event];
1221 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"Stages[\"%s\"][\"%s\"][%d] = {\"count\" : %D, \"time\" : %g, \"syncTime\" : %g, \"numMessages\" : %g, \"messageLength\" : %g, \"numReductions\" : %g, \"flop\" : %g",
1222 stageLog->stageInfo[stage].name,stageLog->eventLog->eventInfo[event].name,rank,
1223 eventInfo->count,eventInfo->time,eventInfo->syncTime,eventInfo->numMessages,eventInfo->messageLength,eventInfo->numReductions,eventInfo->flops);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1223,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1224 if (eventInfo->dof[0] >= 0.) {
1225 PetscInt d, e;
1226
1227 ierr = PetscViewerASCIISynchronizedPrintf(viewer, ", \"dof\" : [");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1227,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1228 for (d = 0; d < 8; ++d) {
1229 if (d > 0) {ierr = PetscViewerASCIISynchronizedPrintf(viewer, ", ");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1229,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;}
1230 ierr = PetscViewerASCIISynchronizedPrintf(viewer, "%g", eventInfo->dof[d]);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1230,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1231 }
1232 ierr = PetscViewerASCIISynchronizedPrintf(viewer, "]");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1232,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1233 ierr = PetscViewerASCIISynchronizedPrintf(viewer, ", \"error\" : [");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1233,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1234 for (e = 0; e < 8; ++e) {
1235 if (e > 0) {ierr = PetscViewerASCIISynchronizedPrintf(viewer, ", ");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1235,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;}
1236 ierr = PetscViewerASCIISynchronizedPrintf(viewer, "%g", eventInfo->errors[e]);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1236,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1237 }
1238 ierr = PetscViewerASCIISynchronizedPrintf(viewer, "]");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1238,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1239 }
1240 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"}\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1240,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1241 }
1242 }
1243 ierr = PetscViewerFlush(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1243,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1244 ierr = PetscViewerASCIIPopSynchronized(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1244,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1245 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1246}
1247
1248/*
1249 PetscLogView_CSV - Each process prints the times for its own events in Comma-Separated Value Format
1250*/
1251PetscErrorCode PetscLogView_CSV(PetscViewer viewer)
1252{
1253 PetscStageLog stageLog;
1254 PetscEventPerfInfo *eventInfo = NULL((void*)0);
1255 PetscLogDouble locTotalTime, maxMem;
1256 int numStages,numEvents,stage,event;
1257 MPI_Comm comm = PetscObjectComm((PetscObject) viewer);
1258 PetscMPIInt rank,size;
1259 PetscErrorCode ierr;
1260
1261 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1261; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1262 ierr = MPI_Comm_size(comm, &size);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1262,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1263 ierr = MPI_Comm_rank(comm, &rank);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1263,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1264 /* Must preserve reduction count before we go on */
1265 /* Get the total elapsed time */
1266 PetscTime(&locTotalTime); locTotalTime -= petsc_BaseTime;
1267 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1267,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1268 ierr = MPIU_Allreduce(&stageLog->numStages, &numStages, 1, MPI_INT, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1268,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&stageLog->numStages),(&numStages)
,(1),(((MPI_Datatype)0x4c000405)),((MPI_Op)(0x58000001)),(comm
))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1268,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1269 ierr = PetscMallocGetMaximumUsage(&maxMem);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1269,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1270 ierr = PetscViewerASCIIPushSynchronized(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1270,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1271 ierr = PetscViewerASCIIPrintf(viewer,"Stage Name,Event Name,Rank,Time,Num Messages,Message Length,Num Reductions,FLOP,dof0,dof1,dof2,dof3,dof4,dof5,dof6,dof7,e0,e1,e2,e3,e4,e5,e6,e7,%d\n", size);
Value stored to 'ierr' is never read
1272 ierr = PetscViewerFlush(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1272,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1273 for (stage=0; stage<numStages; stage++) {
1274 PetscEventPerfInfo *stageInfo = &stageLog->stageInfo[stage].perfInfo;
1275
1276 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"%s,summary,%d,%g,%g,%g,%g,%g\n",
1277 stageLog->stageInfo[stage].name,rank,stageInfo->time,stageInfo->numMessages,stageInfo->messageLength,stageInfo->numReductions,stageInfo->flops);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1277,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1278 ierr = MPIU_Allreduce(&stageLog->stageInfo[stage].eventLog->numEvents, &numEvents, 1, MPI_INT, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1278,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&stageLog->stageInfo[stage].eventLog->
numEvents),(&numEvents),(1),(((MPI_Datatype)0x4c000405)),
((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1278,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1279 for (event = 0; event < numEvents; event++) {
1280 eventInfo = &stageLog->stageInfo[stage].eventLog->eventInfo[event];
1281 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"%s,%s,%d,%g,%g,%g,%g,%g",stageLog->stageInfo[stage].name,
1282 stageLog->eventLog->eventInfo[event].name,rank,eventInfo->time,eventInfo->numMessages,
1283 eventInfo->messageLength,eventInfo->numReductions,eventInfo->flops);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1283,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1284 if (eventInfo->dof[0] >= 0.) {
1285 PetscInt d, e;
1286
1287 for (d = 0; d < 8; ++d) {
1288 ierr = PetscViewerASCIISynchronizedPrintf(viewer, ",%g", eventInfo->dof[d]);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1288,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1289 }
1290 for (e = 0; e < 8; ++e) {
1291 ierr = PetscViewerASCIISynchronizedPrintf(viewer, ",%g", eventInfo->errors[e]);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1291,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1292 }
1293 }
1294 ierr = PetscViewerASCIISynchronizedPrintf(viewer,"\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1294,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1295 }
1296 }
1297 ierr = PetscViewerFlush(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1297,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1298 ierr = PetscViewerASCIIPopSynchronized(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1298,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1299 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1300}
1301
1302static PetscErrorCode PetscLogViewWarnSync(MPI_Comm comm,FILE *fd)
1303{
1304 PetscErrorCode ierr;
1305 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1305; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1306 if (!PetscLogSyncOn) PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1307 ierr = PetscFPrintf(comm, fd, "\n\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1307,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1308 ierr = PetscFPrintf(comm, fd, " ##########################################################\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1308,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1309 ierr = PetscFPrintf(comm, fd, " # #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1309,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1310 ierr = PetscFPrintf(comm, fd, " # WARNING!!! #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1310,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1311 ierr = PetscFPrintf(comm, fd, " # #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1311,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1312 ierr = PetscFPrintf(comm, fd, " # This program was run with logging synchronization. #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1312,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1313 ierr = PetscFPrintf(comm, fd, " # This option provides more meaningful imbalance #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1313,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1314 ierr = PetscFPrintf(comm, fd, " # figures at the expense of slowing things down and #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1314,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1315 ierr = PetscFPrintf(comm, fd, " # providing a distorted view of the overall runtime. #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1315,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1316 ierr = PetscFPrintf(comm, fd, " # #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1316,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1317 ierr = PetscFPrintf(comm, fd, " ##########################################################\n\n\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1317,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1318 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1319 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1320}
1321
1322static PetscErrorCode PetscLogViewWarnDebugging(MPI_Comm comm,FILE *fd)
1323{
1324#if defined(PETSC_USE_DEBUG1)
1325 PetscErrorCode ierr;
1326
1327 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1327; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1328 ierr = PetscFPrintf(comm, fd, "\n\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1328,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1329 ierr = PetscFPrintf(comm, fd, " ##########################################################\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1329,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1330 ierr = PetscFPrintf(comm, fd, " # #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1330,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1331 ierr = PetscFPrintf(comm, fd, " # WARNING!!! #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1331,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1332 ierr = PetscFPrintf(comm, fd, " # #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1332,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1333 ierr = PetscFPrintf(comm, fd, " # This code was compiled with a debugging option. #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1333,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1334 ierr = PetscFPrintf(comm, fd, " # To get timing results run ./configure #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1334,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1335 ierr = PetscFPrintf(comm, fd, " # using --with-debugging=no, the performance will #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1335,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1336 ierr = PetscFPrintf(comm, fd, " # be generally two or three times faster. #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1336,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1337 ierr = PetscFPrintf(comm, fd, " # #\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1337,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1338 ierr = PetscFPrintf(comm, fd, " ##########################################################\n\n\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1338,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1339 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1340#else
1341 return 0;
1342#endif
1343}
1344
1345#if defined(PETSC_HAVE_OPENMP)
1346extern PetscInt PetscNumOMPThreads;
1347#endif
1348
1349PetscErrorCode PetscLogView_Default(PetscViewer viewer)
1350{
1351 FILE *fd;
1352 PetscLogDouble zero = 0.0;
1353 PetscStageLog stageLog;
1354 PetscStageInfo *stageInfo = NULL((void*)0);
1355 PetscEventPerfInfo *eventInfo = NULL((void*)0);
1356 PetscClassPerfInfo *classInfo;
1357 char arch[128],hostname[128],username[128],pname[PETSC_MAX_PATH_LEN4096],date[128];
1358 const char *name;
1359 PetscLogDouble locTotalTime, TotalTime, TotalFlops;
1360 PetscLogDouble numMessages, messageLength, avgMessLen, numReductions;
1361 PetscLogDouble stageTime, flops, flopr, mem, mess, messLen, red;
1362 PetscLogDouble fracTime, fracFlops, fracMessages, fracLength, fracReductions, fracMess, fracMessLen, fracRed;
1363 PetscLogDouble fracStageTime, fracStageFlops, fracStageMess, fracStageMessLen, fracStageRed;
1364 PetscLogDouble min, max, tot, ratio, avg, x, y;
1365 PetscLogDouble minf, maxf, totf, ratf, mint, maxt, tott, ratt, ratC, totm, totml, totr, mal, malmax, emalmax;
1366 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1367 PetscLogDouble cct, gct, csz, gsz;
1368 #endif
1369 PetscMPIInt minC, maxC;
1370 PetscMPIInt size, rank;
1371 PetscBool *localStageUsed, *stageUsed;
1372 PetscBool *localStageVisible, *stageVisible;
1373 int numStages, localNumEvents, numEvents;
1374 int stage, oclass;
1375 PetscLogEvent event;
1376 PetscErrorCode ierr;
1377 char version[256];
1378 MPI_Comm comm;
1379
1380 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1380; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1381 ierr = PetscObjectGetComm((PetscObject)viewer,&comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1381,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1382 ierr = PetscViewerASCIIGetPointer(viewer,&fd);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1382,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1383 ierr = MPI_Comm_size(comm, &size);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1383,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1384 ierr = MPI_Comm_rank(comm, &rank);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1384,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1385 /* Get the total elapsed time */
1386 PetscTime(&locTotalTime); locTotalTime -= petsc_BaseTime;
1387
1388 ierr = PetscFPrintf(comm, fd, "************************************************************************************************************************\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1388,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1389 ierr = PetscFPrintf(comm, fd, "*** WIDEN YOUR WINDOW TO 120 CHARACTERS. Use 'enscript -r -fCourier9' to print this document ***\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1389,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1390 ierr = PetscFPrintf(comm, fd, "************************************************************************************************************************\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1390,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1391 ierr = PetscFPrintf(comm, fd, "\n---------------------------------------------- PETSc Performance Summary: ----------------------------------------------\n\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1391,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1392 ierr = PetscLogViewWarnSync(comm,fd);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1392,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1393 ierr = PetscLogViewWarnDebugging(comm,fd);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1393,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1394 ierr = PetscGetArchType(arch,sizeof(arch));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1394,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1395 ierr = PetscGetHostName(hostname,sizeof(hostname));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1395,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1396 ierr = PetscGetUserName(username,sizeof(username));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1396,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1397 ierr = PetscGetProgramName(pname,sizeof(pname));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1397,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1398 ierr = PetscGetDate(date,sizeof(date));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1398,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1399 ierr = PetscGetVersion(version,sizeof(version));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1399,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1400 if (size == 1) {
1401 ierr = PetscFPrintf(comm,fd,"%s on a %s named %s with %d processor, by %s %s\n", pname, arch, hostname, size, username, date);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1401,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1402 } else {
1403 ierr = PetscFPrintf(comm,fd,"%s on a %s named %s with %d processors, by %s %s\n", pname, arch, hostname, size, username, date);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1403,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1404 }
1405#if defined(PETSC_HAVE_OPENMP)
1406 ierr = PetscFPrintf(comm,fd,"Using %D OpenMP threads\n", PetscNumOMPThreads);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1406,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1407#endif
1408 ierr = PetscFPrintf(comm, fd, "Using %s\n", version);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1408,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1409
1410 /* Must preserve reduction count before we go on */
1411 red = petsc_allreduce_ct + petsc_gather_ct + petsc_scatter_ct;
1412
1413 /* Calculate summary information */
1414 ierr = PetscFPrintf(comm, fd, "\n Max Max/Min Avg Total \n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1414,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1415 /* Time */
1416 ierr = MPIU_Allreduce(&locTotalTime, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1416,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&locTotalTime),(&min),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1416,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1417 ierr = MPIU_Allreduce(&locTotalTime, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1417,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&locTotalTime),(&max),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1417,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1418 ierr = MPIU_Allreduce(&locTotalTime, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1418,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&locTotalTime),(&tot),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1418,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1419 avg = tot/((PetscLogDouble) size);
1420 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1421 ierr = PetscFPrintf(comm, fd, "Time (sec): %5.3e %7.3f %5.3e\n", max, ratio, avg);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1421,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1422 TotalTime = tot;
1423 /* Objects */
1424 avg = (PetscLogDouble) petsc_numObjects;
1425 ierr = MPIU_Allreduce(&avg, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1425,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&avg),(&min),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1425,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1426 ierr = MPIU_Allreduce(&avg, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1426,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&avg),(&max),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1426,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1427 ierr = MPIU_Allreduce(&avg, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1427,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&avg),(&tot),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1427,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1428 avg = tot/((PetscLogDouble) size);
1429 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1430 ierr = PetscFPrintf(comm, fd, "Objects: %5.3e %7.3f %5.3e\n", max, ratio, avg);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1430,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1431 /* Flops */
1432 ierr = MPIU_Allreduce(&petsc_TotalFlops, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1432,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&petsc_TotalFlops),(&min),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1432,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1433 ierr = MPIU_Allreduce(&petsc_TotalFlops, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1433,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&petsc_TotalFlops),(&max),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1433,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1434 ierr = MPIU_Allreduce(&petsc_TotalFlops, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1434,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&petsc_TotalFlops),(&tot),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1434,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1435 avg = tot/((PetscLogDouble) size);
1436 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1437 ierr = PetscFPrintf(comm, fd, "Flop: %5.3e %7.3f %5.3e %5.3e\n", max, ratio, avg, tot);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1437,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1438 TotalFlops = tot;
1439 /* Flops/sec -- Must talk to Barry here */
1440 if (locTotalTime != 0.0) flops = petsc_TotalFlops/locTotalTime; else flops = 0.0;
1441 ierr = MPIU_Allreduce(&flops, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1441,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&flops),(&min),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1441,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1442 ierr = MPIU_Allreduce(&flops, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1442,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&flops),(&max),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1442,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1443 ierr = MPIU_Allreduce(&flops, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1443,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&flops),(&tot),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1443,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1444 avg = tot/((PetscLogDouble) size);
1445 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1446 ierr = PetscFPrintf(comm, fd, "Flop/sec: %5.3e %7.3f %5.3e %5.3e\n", max, ratio, avg, tot);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1446,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1447 /* Memory */
1448 ierr = PetscMallocGetMaximumUsage(&mem);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1448,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1449 if (mem > 0.0) {
1450 ierr = MPIU_Allreduce(&mem, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1450,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mem),(&min),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1450,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1451 ierr = MPIU_Allreduce(&mem, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1451,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mem),(&max),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1451,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1452 ierr = MPIU_Allreduce(&mem, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1452,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mem),(&tot),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1452,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1453 avg = tot/((PetscLogDouble) size);
1454 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1455 ierr = PetscFPrintf(comm, fd, "Memory: %5.3e %7.3f %5.3e %5.3e\n", max, ratio, avg, tot);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1455,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1456 }
1457 /* Messages */
1458 mess = 0.5*(petsc_irecv_ct + petsc_isend_ct + petsc_recv_ct + petsc_send_ct);
1459 ierr = MPIU_Allreduce(&mess, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1459,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mess),(&min),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1459,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1460 ierr = MPIU_Allreduce(&mess, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1460,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mess),(&max),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1460,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1461 ierr = MPIU_Allreduce(&mess, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1461,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mess),(&tot),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1461,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1462 avg = tot/((PetscLogDouble) size);
1463 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1464 ierr = PetscFPrintf(comm, fd, "MPI Messages: %5.3e %7.3f %5.3e %5.3e\n", max, ratio, avg, tot);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1464,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1465 numMessages = tot;
1466 /* Message Lengths */
1467 mess = 0.5*(petsc_irecv_len + petsc_isend_len + petsc_recv_len + petsc_send_len);
1468 ierr = MPIU_Allreduce(&mess, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1468,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mess),(&min),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1468,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1469 ierr = MPIU_Allreduce(&mess, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1469,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mess),(&max),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1469,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1470 ierr = MPIU_Allreduce(&mess, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1470,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&mess),(&tot),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1470,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1471 if (numMessages != 0) avg = tot/numMessages; else avg = 0.0;
1472 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1473 ierr = PetscFPrintf(comm, fd, "MPI Message Lengths: %5.3e %7.3f %5.3e %5.3e\n", max, ratio, avg, tot);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1473,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1474 messageLength = tot;
1475 /* Reductions */
1476 ierr = MPIU_Allreduce(&red, &min, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)(PetscAllreduceBarrierCheck(comm,1,1476,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&red),(&min),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000002)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1476,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1477 ierr = MPIU_Allreduce(&red, &max, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1477,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&red),(&max),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1477,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1478 ierr = MPIU_Allreduce(&red, &tot, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)(PetscAllreduceBarrierCheck(comm,1,1478,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&red),(&tot),(1),(((MPI_Datatype)0x4c00080b
)),((MPI_Op)(0x58000003)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1478,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1479 if (min != 0.0) ratio = max/min; else ratio = 0.0;
1480 ierr = PetscFPrintf(comm, fd, "MPI Reductions: %5.3e %7.3f\n", max, ratio);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1480,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1481 numReductions = red; /* wrong because uses count from process zero */
1482 ierr = PetscFPrintf(comm, fd, "\nFlop counting convention: 1 flop = 1 real number operation of type (multiply/divide/add/subtract)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1482,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1483 ierr = PetscFPrintf(comm, fd, " e.g., VecAXPY() for real vectors of length N --> 2N flop\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1483,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1484 ierr = PetscFPrintf(comm, fd, " and VecAXPY() for complex vectors of length N --> 8N flop\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1484,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1485
1486 /* Get total number of stages --
1487 Currently, a single processor can register more stages than another, but stages must all be registered in order.
1488 We can removed this requirement if necessary by having a global stage numbering and indirection on the stage ID.
1489 This seems best accomplished by assoicating a communicator with each stage.
1490 */
1491 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1491,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1492 ierr = MPIU_Allreduce(&stageLog->numStages, &numStages, 1, MPI_INT, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1492,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&stageLog->numStages),(&numStages)
,(1),(((MPI_Datatype)0x4c000405)),((MPI_Op)(0x58000001)),(comm
))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1492,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1493 ierr = PetscMalloc1(numStages, &localStageUsed)PetscMallocA(1,PETSC_FALSE,1493,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,(size_t)(numStages)*sizeof(**(&localStageUsed)),(&localStageUsed
))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1493,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1494 ierr = PetscMalloc1(numStages, &stageUsed)PetscMallocA(1,PETSC_FALSE,1494,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,(size_t)(numStages)*sizeof(**(&stageUsed)),(&stageUsed
))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1494,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1495 ierr = PetscMalloc1(numStages, &localStageVisible)PetscMallocA(1,PETSC_FALSE,1495,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,(size_t)(numStages)*sizeof(**(&localStageVisible)),(&
localStageVisible))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1495,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1496 ierr = PetscMalloc1(numStages, &stageVisible)PetscMallocA(1,PETSC_FALSE,1496,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,(size_t)(numStages)*sizeof(**(&stageVisible)),(&stageVisible
))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1496,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1497 if (numStages > 0) {
1498 stageInfo = stageLog->stageInfo;
1499 for (stage = 0; stage < numStages; stage++) {
1500 if (stage < stageLog->numStages) {
1501 localStageUsed[stage] = stageInfo[stage].used;
1502 localStageVisible[stage] = stageInfo[stage].perfInfo.visible;
1503 } else {
1504 localStageUsed[stage] = PETSC_FALSE;
1505 localStageVisible[stage] = PETSC_TRUE;
1506 }
1507 }
1508 ierr = MPIU_Allreduce(localStageUsed, stageUsed, numStages, MPIU_BOOL, MPI_LOR, comm)(PetscAllreduceBarrierCheck(comm,numStages,1508,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((localStageUsed),(stageUsed),(numStages),(MPIU_BOOL
),((MPI_Op)(0x58000007)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1508,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1509 ierr = MPIU_Allreduce(localStageVisible, stageVisible, numStages, MPIU_BOOL, MPI_LAND, comm)(PetscAllreduceBarrierCheck(comm,numStages,1509,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((localStageVisible),(stageVisible),(numStages)
,(MPIU_BOOL),((MPI_Op)(0x58000005)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1509,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1510 for (stage = 0; stage < numStages; stage++) {
1511 if (stageUsed[stage]) {
1512 ierr = PetscFPrintf(comm, fd, "\nSummary of Stages: ----- Time ------ ----- Flop ------ --- Messages --- -- Message Lengths -- -- Reductions --\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1512,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1513 ierr = PetscFPrintf(comm, fd, " Avg %%Total Avg %%Total Count %%Total Avg %%Total Count %%Total \n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1513,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1514 break;
1515 }
1516 }
1517 for (stage = 0; stage < numStages; stage++) {
1518 if (!stageUsed[stage]) continue;
1519 /* CANNOT use MPIU_Allreduce() since it might fail the line number check */
1520 if (localStageUsed[stage]) {
1521 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.time, &stageTime, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.time),(&stageTime),(1),(
((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1521,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1522 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.flops, &flops, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.flops),(&flops),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1522,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1523 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.numMessages, &mess, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.numMessages),(&mess),(1)
,(((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1523,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1524 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.messageLength, &messLen, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.messageLength),(&messLen
),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm
)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1524,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1525 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.numReductions, &red, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.numReductions),(&red),(1
),(((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm))
)
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1525,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1526 name = stageInfo[stage].name;
1527 } else {
1528 ierr = MPI_Allreduce(&zero, &stageTime, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&stageTime),(1),(((MPI_Datatype)0x4c00080b)
),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1528,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1529 ierr = MPI_Allreduce(&zero, &flops, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&flops),(1),(((MPI_Datatype)0x4c00080b)),((
MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1529,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1530 ierr = MPI_Allreduce(&zero, &mess, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&mess),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1530,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1531 ierr = MPI_Allreduce(&zero, &messLen, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&messLen),(1),(((MPI_Datatype)0x4c00080b)),
((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1531,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1532 ierr = MPI_Allreduce(&zero, &red, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&red),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1532,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1533 name = "";
1534 }
1535 mess *= 0.5; messLen *= 0.5; red /= size;
1536 if (TotalTime != 0.0) fracTime = stageTime/TotalTime; else fracTime = 0.0;
1537 if (TotalFlops != 0.0) fracFlops = flops/TotalFlops; else fracFlops = 0.0;
1538 /* Talk to Barry if (stageTime != 0.0) flops = (size*flops)/stageTime; else flops = 0.0; */
1539 if (numMessages != 0.0) fracMessages = mess/numMessages; else fracMessages = 0.0;
1540 if (mess != 0.0) avgMessLen = messLen/mess; else avgMessLen = 0.0;
1541 if (messageLength != 0.0) fracLength = messLen/messageLength; else fracLength = 0.0;
1542 if (numReductions != 0.0) fracReductions = red/numReductions; else fracReductions = 0.0;
1543 ierr = PetscFPrintf(comm, fd, "%2d: %15s: %6.4e %5.1f%% %6.4e %5.1f%% %5.3e %5.1f%% %5.3e %5.1f%% %5.3e %5.1f%% \n",
1544 stage, name, stageTime/size, 100.0*fracTime, flops, 100.0*fracFlops,
1545 mess, 100.0*fracMessages, avgMessLen, 100.0*fracLength, red, 100.0*fracReductions);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1545,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1546 }
1547 }
1548
1549 ierr = PetscFPrintf(comm, fd,"\n------------------------------------------------------------------------------------------------------------------------\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1549,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1550 ierr = PetscFPrintf(comm, fd, "See the 'Profiling' chapter of the users' manual for details on interpreting output.\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1550,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1551 ierr = PetscFPrintf(comm, fd, "Phase summary info:\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1551,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1552 ierr = PetscFPrintf(comm, fd, " Count: number of times phase was executed\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1552,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1553 ierr = PetscFPrintf(comm, fd, " Time and Flop: Max - maximum over all processors\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1553,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1554 ierr = PetscFPrintf(comm, fd, " Ratio - ratio of maximum to minimum over all processors\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1554,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1555 ierr = PetscFPrintf(comm, fd, " Mess: number of messages sent\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1555,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1556 ierr = PetscFPrintf(comm, fd, " AvgLen: average message length (bytes)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1556,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1557 ierr = PetscFPrintf(comm, fd, " Reduct: number of global reductions\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1557,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1558 ierr = PetscFPrintf(comm, fd, " Global: entire computation\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1558,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1559 ierr = PetscFPrintf(comm, fd, " Stage: stages of a computation. Set stages with PetscLogStagePush() and PetscLogStagePop().\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1559,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1560 ierr = PetscFPrintf(comm, fd, " %%T - percent time in this phase %%F - percent flop in this phase\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1560,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1561 ierr = PetscFPrintf(comm, fd, " %%M - percent messages in this phase %%L - percent message lengths in this phase\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1561,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1562 ierr = PetscFPrintf(comm, fd, " %%R - percent reductions in this phase\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1562,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1563 ierr = PetscFPrintf(comm, fd, " Total Mflop/s: 10e-6 * (sum of flop over all processors)/(max time over all processors)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1563,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1564 if (PetscLogMemory) {
1565 ierr = PetscFPrintf(comm, fd, " Malloc Mbytes: Memory allocated and kept during event (sum over all calls to event)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1565,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1566 ierr = PetscFPrintf(comm, fd, " EMalloc Mbytes: extra memory allocated during event and then freed (maximum over all calls to events)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1566,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1567 ierr = PetscFPrintf(comm, fd, " MMalloc Mbytes: Increase in high water mark of allocated memory (sum over all calls to event)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1567,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1568 ierr = PetscFPrintf(comm, fd, " RMI Mbytes: Increase in resident memory (sum over all calls to event)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1568,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1569 }
1570 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1571 ierr = PetscFPrintf(comm, fd, " CpuToGpu Count: total number of CPU to GPU copies per processor\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1571,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1572 ierr = PetscFPrintf(comm, fd, " CpuToGpu Size (Mbytes): 10e-6 * (total size of CPU to GPU copies per processor)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1572,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1573 ierr = PetscFPrintf(comm, fd, " GpuToCpu Count: total number of GPU to CPU copies per processor\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1573,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1574 ierr = PetscFPrintf(comm, fd, " GpuToCpu Size (Mbytes): 10e-6 * (total size of GPU to CPU copies per processor)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1574,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1575 #endif
1576 ierr = PetscFPrintf(comm, fd, "------------------------------------------------------------------------------------------------------------------------\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1576,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1577
1578 ierr = PetscLogViewWarnDebugging(comm,fd);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1578,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1579
1580 /* Report events */
1581 ierr = PetscFPrintf(comm, fd,"Event Count Time (sec) Flop --- Global --- --- Stage ---- Total");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1581,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1582 if (PetscLogMemory) {
1583 ierr = PetscFPrintf(comm, fd," Malloc EMalloc MMalloc RMI");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1583,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1584 }
1585 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1586 ierr = PetscFPrintf(comm, fd," - CpuToGpu - - GpuToCpu -");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1586,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1587 #endif
1588 ierr = PetscFPrintf(comm, fd,"\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1588,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1589 ierr = PetscFPrintf(comm, fd," Max Ratio Max Ratio Max Ratio Mess AvgLen Reduct %%T %%F %%M %%L %%R %%T %%F %%M %%L %%R Mflop/s");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1589,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1590 if (PetscLogMemory) {
1591 ierr = PetscFPrintf(comm, fd," Mbytes Mbytes Mbytes Mbytes");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1591,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1592 }
1593 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1594 ierr = PetscFPrintf(comm, fd," Count Size Count Size");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1594,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1595 #endif
1596 ierr = PetscFPrintf(comm, fd,"\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1596,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1597 ierr = PetscFPrintf(comm, fd,"------------------------------------------------------------------------------------------------------------------------");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1597,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1598 if (PetscLogMemory) {
1599 ierr = PetscFPrintf(comm, fd,"-----------------------------");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1599,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1600 }
1601 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1602 ierr = PetscFPrintf(comm, fd,"-----------------------------");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1602,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1603 #endif
1604 ierr = PetscFPrintf(comm, fd,"\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1604,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1605
1606 /* Problem: The stage name will not show up unless the stage executed on proc 1 */
1607 for (stage = 0; stage < numStages; stage++) {
1608 if (!stageVisible[stage]) continue;
1609 /* CANNOT use MPIU_Allreduce() since it might fail the line number check */
1610 if (localStageUsed[stage]) {
1611 ierr = PetscFPrintf(comm, fd, "\n--- Event Stage %d: %s\n\n", stage, stageInfo[stage].name);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1611,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1612 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.time, &stageTime, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.time),(&stageTime),(1),(
((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1612,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1613 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.flops, &flops, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.flops),(&flops),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1613,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1614 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.numMessages, &mess, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.numMessages),(&mess),(1)
,(((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1614,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1615 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.messageLength, &messLen, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.messageLength),(&messLen
),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm
)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1615,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1616 ierr = MPI_Allreduce(&stageInfo[stage].perfInfo.numReductions, &red, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&stageInfo[stage].perfInfo.numReductions),(&red),(1
),(((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm))
)
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1616,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1617 } else {
1618 ierr = PetscFPrintf(comm, fd, "\n--- Event Stage %d: Unknown\n\n", stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1618,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1619 ierr = MPI_Allreduce(&zero, &stageTime, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&stageTime),(1),(((MPI_Datatype)0x4c00080b)
),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1619,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1620 ierr = MPI_Allreduce(&zero, &flops, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&flops),(1),(((MPI_Datatype)0x4c00080b)),((
MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1620,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1621 ierr = MPI_Allreduce(&zero, &mess, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&mess),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1621,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1622 ierr = MPI_Allreduce(&zero, &messLen, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&messLen),(1),(((MPI_Datatype)0x4c00080b)),
((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1622,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1623 ierr = MPI_Allreduce(&zero, &red, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&red),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1623,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1624 }
1625 mess *= 0.5; messLen *= 0.5; red /= size;
1626
1627 /* Get total number of events in this stage --
1628 Currently, a single processor can register more events than another, but events must all be registered in order,
1629 just like stages. We can removed this requirement if necessary by having a global event numbering and indirection
1630 on the event ID. This seems best accomplished by associating a communicator with each stage.
1631
1632 Problem: If the event did not happen on proc 1, its name will not be available.
1633 Problem: Event visibility is not implemented
1634 */
1635 if (localStageUsed[stage]) {
1636 eventInfo = stageLog->stageInfo[stage].eventLog->eventInfo;
1637 localNumEvents = stageLog->stageInfo[stage].eventLog->numEvents;
1638 } else localNumEvents = 0;
1639 ierr = MPIU_Allreduce(&localNumEvents, &numEvents, 1, MPI_INT, MPI_MAX, comm)(PetscAllreduceBarrierCheck(comm,1,1639,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) ||
MPI_Allreduce((&localNumEvents),(&numEvents),(1),(((
MPI_Datatype)0x4c000405)),((MPI_Op)(0x58000001)),(comm))))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1639,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1640 for (event = 0; event < numEvents; event++) {
1641 /* CANNOT use MPIU_Allreduce() since it might fail the line number check */
1642 if (localStageUsed[stage] && (event < stageLog->stageInfo[stage].eventLog->numEvents) && (eventInfo[event].depth == 0)) {
1643 if ((eventInfo[event].count > 0) && (eventInfo[event].time > 0.0)) flopr = eventInfo[event].flops; else flopr = 0.0;
1644 ierr = MPI_Allreduce(&flopr, &minf, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&flopr),(&minf),(1),(((MPI_Datatype)0x4c00080b)),((
MPI_Op)(0x58000002)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1644,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1645 ierr = MPI_Allreduce(&flopr, &maxf, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&flopr),(&maxf),(1),(((MPI_Datatype)0x4c00080b)),((
MPI_Op)(0x58000001)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1645,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1646 ierr = MPI_Allreduce(&eventInfo[event].flops, &totf, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].flops),(&totf),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1646,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1647 ierr = MPI_Allreduce(&eventInfo[event].time, &mint, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].time),(&mint),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000002)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1647,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1648 ierr = MPI_Allreduce(&eventInfo[event].time, &maxt, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].time),(&maxt),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000001)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1648,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1649 ierr = MPI_Allreduce(&eventInfo[event].time, &tott, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].time),(&tott),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1649,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1650 ierr = MPI_Allreduce(&eventInfo[event].numMessages, &totm, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].numMessages),(&totm),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1650,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1651 ierr = MPI_Allreduce(&eventInfo[event].messageLength, &totml, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].messageLength),(&totml),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1651,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1652 ierr = MPI_Allreduce(&eventInfo[event].numReductions, &totr, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].numReductions),(&totr),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1652,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1653 ierr = MPI_Allreduce(&eventInfo[event].count, &minC, 1, MPI_INT, MPI_MIN, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].count),(&minC),(1),(((MPI_Datatype
)0x4c000405)),((MPI_Op)(0x58000002)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1653,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1654 ierr = MPI_Allreduce(&eventInfo[event].count, &maxC, 1, MPI_INT, MPI_MAX, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].count),(&maxC),(1),(((MPI_Datatype
)0x4c000405)),((MPI_Op)(0x58000001)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1654,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1655 if (PetscLogMemory) {
1656 ierr = MPI_Allreduce(&eventInfo[event].memIncrease, &mem, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].memIncrease),(&mem),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1656,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1657 ierr = MPI_Allreduce(&eventInfo[event].mallocSpace, &mal, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].mallocSpace),(&mal),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1657,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1658 ierr = MPI_Allreduce(&eventInfo[event].mallocIncrease, &malmax,1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].mallocIncrease),(&malmax),(1),(((
MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1658,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1659 ierr = MPI_Allreduce(&eventInfo[event].mallocIncreaseEvent, &emalmax,1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].mallocIncreaseEvent),(&emalmax),(
1),(((MPI_Datatype)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)
))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1659,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1660 }
1661 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1662 ierr = MPI_Allreduce(&eventInfo[event].CpuToGpuCount, &cct, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].CpuToGpuCount),(&cct),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1662,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1663 ierr = MPI_Allreduce(&eventInfo[event].GpuToCpuCount, &gct, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].GpuToCpuCount),(&gct),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1663,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1664 ierr = MPI_Allreduce(&eventInfo[event].CpuToGpuSize, &csz, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].CpuToGpuSize),(&csz),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1664,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1665 ierr = MPI_Allreduce(&eventInfo[event].GpuToCpuSize, &gsz, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&eventInfo[event].GpuToCpuSize),(&gsz),(1),(((MPI_Datatype
)0x4c00080b)),((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1665,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1666 #endif
1667 name = stageLog->eventLog->eventInfo[event].name;
1668 } else {
1669 flopr = 0.0;
1670 ierr = MPI_Allreduce(&flopr, &minf, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&flopr),(&minf),(1),(((MPI_Datatype)0x4c00080b)),((
MPI_Op)(0x58000002)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1670,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1671 ierr = MPI_Allreduce(&flopr, &maxf, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&flopr),(&maxf),(1),(((MPI_Datatype)0x4c00080b)),((
MPI_Op)(0x58000001)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1671,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1672 ierr = MPI_Allreduce(&zero, &totf, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&totf),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1672,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1673 ierr = MPI_Allreduce(&zero, &mint, 1, MPIU_PETSCLOGDOUBLE, MPI_MIN, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&mint),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000002)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1673,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1674 ierr = MPI_Allreduce(&zero, &maxt, 1, MPIU_PETSCLOGDOUBLE, MPI_MAX, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&maxt),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000001)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1674,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1675 ierr = MPI_Allreduce(&zero, &tott, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&tott),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1675,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1676 ierr = MPI_Allreduce(&zero, &totm, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&totm),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1676,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1677 ierr = MPI_Allreduce(&zero, &totml, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&totml),(1),(((MPI_Datatype)0x4c00080b)),((
MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1677,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1678 ierr = MPI_Allreduce(&zero, &totr, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&totr),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1678,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1679 ierr = MPI_Allreduce(&ierr, &minC, 1, MPI_INT, MPI_MIN, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&ierr),(&minC),(1),(((MPI_Datatype)0x4c000405)),((MPI_Op
)(0x58000002)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1679,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1680 ierr = MPI_Allreduce(&ierr, &maxC, 1, MPI_INT, MPI_MAX, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&ierr),(&maxC),(1),(((MPI_Datatype)0x4c000405)),((MPI_Op
)(0x58000001)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1680,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1681 if (PetscLogMemory) {
1682 ierr = MPI_Allreduce(&zero, &mem, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&mem),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1682,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1683 ierr = MPI_Allreduce(&zero, &mal, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&mal),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1683,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1684 ierr = MPI_Allreduce(&zero, &malmax, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&malmax),(1),(((MPI_Datatype)0x4c00080b)),(
(MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1684,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1685 ierr = MPI_Allreduce(&zero, &emalmax,1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&emalmax),(1),(((MPI_Datatype)0x4c00080b)),
((MPI_Op)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1685,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1686 }
1687 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1688 ierr = MPI_Allreduce(&zero, &cct, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&cct),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1688,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1689 ierr = MPI_Allreduce(&zero, &gct, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&gct),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1689,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1690 ierr = MPI_Allreduce(&zero, &csz, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&csz),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1690,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1691 ierr = MPI_Allreduce(&zero, &gsz, 1, MPIU_PETSCLOGDOUBLE, MPI_SUM, comm)((petsc_allreduce_ct += PetscMPIParallelComm((comm)),0) || MPI_Allreduce
((&zero),(&gsz),(1),(((MPI_Datatype)0x4c00080b)),((MPI_Op
)(0x58000003)),(comm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1691,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1692 #endif
1693 name = "";
1694 }
1695 if (mint < 0.0) {
1696 ierr = PetscFPrintf(comm, fd, "WARNING!!! Minimum time %g over all processors for %s is negative! This happens\n on some machines whose times cannot handle too rapid calls.!\n artificially changing minimum to zero.\n",mint,name);
1697 mint = 0;
1698 }
1699 if (minf < 0.0) SETERRQ2(PETSC_COMM_SELF,PETSC_ERR_PLIB,"Minimum flop %g over all processors for %s is negative! Not possible!",minf,name)return PetscError(((MPI_Comm)0x44000001),1699,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,77,PETSC_ERROR_INITIAL,"Minimum flop %g over all processors for %s is negative! Not possible!"
,minf,name)
;
1700 totm *= 0.5; totml *= 0.5; totr /= size;
1701
1702 if (maxC != 0) {
1703 if (minC != 0) ratC = ((PetscLogDouble)maxC)/minC;else ratC = 0.0;
1704 if (mint != 0.0) ratt = maxt/mint; else ratt = 0.0;
1705 if (minf != 0.0) ratf = maxf/minf; else ratf = 0.0;
1706 if (TotalTime != 0.0) fracTime = tott/TotalTime; else fracTime = 0.0;
1707 if (TotalFlops != 0.0) fracFlops = totf/TotalFlops; else fracFlops = 0.0;
1708 if (stageTime != 0.0) fracStageTime = tott/stageTime; else fracStageTime = 0.0;
1709 if (flops != 0.0) fracStageFlops = totf/flops; else fracStageFlops = 0.0;
1710 if (numMessages != 0.0) fracMess = totm/numMessages; else fracMess = 0.0;
1711 if (messageLength != 0.0) fracMessLen = totml/messageLength; else fracMessLen = 0.0;
1712 if (numReductions != 0.0) fracRed = totr/numReductions; else fracRed = 0.0;
1713 if (mess != 0.0) fracStageMess = totm/mess; else fracStageMess = 0.0;
1714 if (messLen != 0.0) fracStageMessLen = totml/messLen; else fracStageMessLen = 0.0;
1715 if (red != 0.0) fracStageRed = totr/red; else fracStageRed = 0.0;
1716 if (totm != 0.0) totml /= totm; else totml = 0.0;
1717 if (maxt != 0.0) flopr = totf/maxt; else flopr = 0.0;
1718 if (fracStageTime > 1.00) ierr = PetscFPrintf(comm, fd,"Warning -- total time of event greater than time of entire stage -- something is wrong with the timer\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1718,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1719 ierr = PetscFPrintf(comm, fd,
1720 "%-16s %7d%4.1f %5.4e%4.1f %3.2e%4.1f %2.1e %2.1e %2.1e%3.0f%3.0f%3.0f%3.0f%3.0f %3.0f%3.0f%3.0f%3.0f%3.0f %5.0f",
1721 name, maxC, ratC, maxt, ratt, maxf, ratf, totm, totml, totr,
1722 100.0*fracTime, 100.0*fracFlops, 100.0*fracMess, 100.0*fracMessLen, 100.0*fracRed,
1723 100.0*fracStageTime, 100.0*fracStageFlops, 100.0*fracStageMess, 100.0*fracStageMessLen, 100.0*fracStageRed,
1724 PetscAbs(flopr)(((flopr) >= 0) ? (flopr) : (-(flopr)))/1.0e6);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1724,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1725 if (PetscLogMemory) {
1726 ierr = PetscFPrintf(comm, fd," %5.0f %5.0f %5.0f %5.0f",mal/1.0e6,emalmax/1.0e6,malmax/1.0e6,mem/1.0e6);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1726,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1727 }
1728 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1729 ierr = PetscFPrintf(comm, fd," %4.0f %3.2e %4.0f %3.2e",cct/size,csz/(1.0e6*size),gct/size,gsz/(1.0e6*size));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1729,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1730 #endif
1731 ierr = PetscFPrintf(comm, fd,"\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1731,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1732 }
1733 }
1734 }
1735
1736 /* Memory usage and object creation */
1737 ierr = PetscFPrintf(comm, fd, "------------------------------------------------------------------------------------------------------------------------");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1737,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1738 if (PetscLogMemory) {
1739 ierr = PetscFPrintf(comm, fd, "-----------------------------");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1739,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1740 }
1741 #if defined(PETSC_HAVE_VIENNACL) || defined(PETSC_HAVE_CUDA)
1742 ierr = PetscFPrintf(comm, fd, "-----------------------------");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1742,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1743 #endif
1744 ierr = PetscFPrintf(comm, fd, "\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1744,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1745 ierr = PetscFPrintf(comm, fd, "\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1745,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1746 ierr = PetscFPrintf(comm, fd, "Memory usage is given in bytes:\n\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1746,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1747
1748 /* Right now, only stages on the first processor are reported here, meaning only objects associated with
1749 the global communicator, or MPI_COMM_SELF for proc 1. We really should report global stats and then
1750 stats for stages local to processor sets.
1751 */
1752 /* We should figure out the longest object name here (now 20 characters) */
1753 ierr = PetscFPrintf(comm, fd, "Object Type Creations Destructions Memory Descendants' Mem.\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1753,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1754 ierr = PetscFPrintf(comm, fd, "Reports information only for process 0.\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1754,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1755 for (stage = 0; stage < numStages; stage++) {
1756 if (localStageUsed[stage]) {
1757 classInfo = stageLog->stageInfo[stage].classLog->classInfo;
1758 ierr = PetscFPrintf(comm, fd, "\n--- Event Stage %d: %s\n\n", stage, stageInfo[stage].name);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1758,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1759 for (oclass = 0; oclass < stageLog->stageInfo[stage].classLog->numClasses; oclass++) {
1760 if ((classInfo[oclass].creations > 0) || (classInfo[oclass].destructions > 0)) {
1761 ierr = PetscFPrintf(comm, fd, "%20s %5d %5d %11.0f %g\n", stageLog->classLog->classInfo[oclass].name,
1762 classInfo[oclass].creations, classInfo[oclass].destructions, classInfo[oclass].mem,
1763 classInfo[oclass].descMem);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1763,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1764 }
1765 }
1766 } else {
1767 if (!localStageVisible[stage]) continue;
1768 ierr = PetscFPrintf(comm, fd, "\n--- Event Stage %d: Unknown\n\n", stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1768,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1769 }
1770 }
1771
1772 ierr = PetscFree(localStageUsed)((*PetscTrFree)((void*)(localStageUsed),1772,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((localStageUsed) = 0,0))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1772,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1773 ierr = PetscFree(stageUsed)((*PetscTrFree)((void*)(stageUsed),1773,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((stageUsed) = 0,0))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1773,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1774 ierr = PetscFree(localStageVisible)((*PetscTrFree)((void*)(localStageVisible),1774,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((localStageVisible) = 0,0))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1774,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1775 ierr = PetscFree(stageVisible)((*PetscTrFree)((void*)(stageVisible),1775,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
) || ((stageVisible) = 0,0))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1775,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1776
1777 /* Information unrelated to this particular run */
1778 ierr = PetscFPrintf(comm, fd, "========================================================================================================================\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1778,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1779 PetscTime(&y);
1780 PetscTime(&x);
1781 PetscTime(&y); PetscTime(&y); PetscTime(&y); PetscTime(&y); PetscTime(&y);
1782 PetscTime(&y); PetscTime(&y); PetscTime(&y); PetscTime(&y); PetscTime(&y);
1783 ierr = PetscFPrintf(comm,fd,"Average time to get PetscTime(): %g\n", (y-x)/10.0);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1783,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1784 /* MPI information */
1785 if (size > 1) {
1786 MPI_Status status;
1787 PetscMPIInt tag;
1788 MPI_Comm newcomm;
1789
1790 ierr = MPI_Barrier(comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1790,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1791 PetscTime(&x);
1792 ierr = MPI_Barrier(comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1792,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1793 ierr = MPI_Barrier(comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1793,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1794 ierr = MPI_Barrier(comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1794,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1795 ierr = MPI_Barrier(comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1795,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1796 ierr = MPI_Barrier(comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1796,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1797 PetscTime(&y);
1798 ierr = PetscFPrintf(comm, fd, "Average time for MPI_Barrier(): %g\n", (y-x)/5.0);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1798,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1799 ierr = PetscCommDuplicate(comm,&newcomm, &tag);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1799,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1800 ierr = MPI_Barrier(comm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1800,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1801 if (rank) {
1802 ierr = MPI_Recv(NULL, 0, MPI_INT, rank-1, tag, newcomm, &status)((petsc_recv_ct++,0) || PetscMPITypeSize((&petsc_recv_len
),(0),(((MPI_Datatype)0x4c000405))) || MPI_Recv((((void*)0)),
(0),(((MPI_Datatype)0x4c000405)),(rank-1),(tag),(newcomm),(&
status)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1802,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1803 ierr = MPI_Send(NULL, 0, MPI_INT, (rank+1)%size, tag, newcomm)((petsc_send_ct++,0) || PetscMPITypeSize((&petsc_send_len
),(0),(((MPI_Datatype)0x4c000405))) || MPI_Send((((void*)0)),
(0),(((MPI_Datatype)0x4c000405)),((rank+1)%size),(tag),(newcomm
)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1803,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1804 } else {
1805 PetscTime(&x);
1806 ierr = MPI_Send(NULL, 0, MPI_INT, 1, tag, newcomm)((petsc_send_ct++,0) || PetscMPITypeSize((&petsc_send_len
),(0),(((MPI_Datatype)0x4c000405))) || MPI_Send((((void*)0)),
(0),(((MPI_Datatype)0x4c000405)),(1),(tag),(newcomm)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1806,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1807 ierr = MPI_Recv(NULL, 0, MPI_INT, size-1, tag, newcomm, &status)((petsc_recv_ct++,0) || PetscMPITypeSize((&petsc_recv_len
),(0),(((MPI_Datatype)0x4c000405))) || MPI_Recv((((void*)0)),
(0),(((MPI_Datatype)0x4c000405)),(size-1),(tag),(newcomm),(&
status)))
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1807,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1808 PetscTime(&y);
1809 ierr = PetscFPrintf(comm,fd,"Average time for zero size MPI_Send(): %g\n", (y-x)/size);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1809,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1810 }
1811 ierr = PetscCommDestroy(&newcomm);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1811,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1812 }
1813 ierr = PetscOptionsView(NULL((void*)0),viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1813,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1814
1815 /* Machine and compile information */
1816#if defined(PETSC_USE_FORTRAN_KERNELS)
1817 ierr = PetscFPrintf(comm, fd, "Compiled with FORTRAN kernels\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1817,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1818#else
1819 ierr = PetscFPrintf(comm, fd, "Compiled without FORTRAN kernels\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1819,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1820#endif
1821#if defined(PETSC_USE_64BIT_INDICES)
1822 ierr = PetscFPrintf(comm, fd, "Compiled with 64 bit PetscInt\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1822,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1823#elif defined(PETSC_USE___FLOAT128)
1824 ierr = PetscFPrintf(comm, fd, "Compiled with 32 bit PetscInt\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1824,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1825#endif
1826#if defined(PETSC_USE_REAL_SINGLE)
1827 ierr = PetscFPrintf(comm, fd, "Compiled with single precision PetscScalar and PetscReal\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1827,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1828#elif defined(PETSC_USE___FLOAT128)
1829 ierr = PetscFPrintf(comm, fd, "Compiled with 128 bit precision PetscScalar and PetscReal\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1829,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1830#endif
1831#if defined(PETSC_USE_REAL_MAT_SINGLE)
1832 ierr = PetscFPrintf(comm, fd, "Compiled with single precision matrices\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1832,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1833#else
1834 ierr = PetscFPrintf(comm, fd, "Compiled with full precision matrices (default)\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1834,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1835#endif
1836 ierr = PetscFPrintf(comm, fd, "sizeof(short) %d sizeof(int) %d sizeof(long) %d sizeof(void*) %d sizeof(PetscScalar) %d sizeof(PetscInt) %d\n",
1837 (int) sizeof(short), (int) sizeof(int), (int) sizeof(long), (int) sizeof(void*),(int) sizeof(PetscScalar),(int) sizeof(PetscInt));CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1837,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1838
1839 ierr = PetscFPrintf(comm, fd, "Configure options: %s",petscconfigureoptions);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1839,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1840 ierr = PetscFPrintf(comm, fd, "%s", petscmachineinfo);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1840,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1841 ierr = PetscFPrintf(comm, fd, "%s", petsccompilerinfo);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1841,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1842 ierr = PetscFPrintf(comm, fd, "%s", petsccompilerflagsinfo);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1842,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1843 ierr = PetscFPrintf(comm, fd, "%s", petsclinkerinfo);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1843,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1844
1845 /* Cleanup */
1846 ierr = PetscFPrintf(comm, fd, "\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1846,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1847 ierr = PetscLogViewWarnDebugging(comm,fd);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1847,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1848 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1849}
1850
1851/*@C
1852 PetscLogView - Prints a summary of the logging.
1853
1854 Collective over MPI_Comm
1855
1856 Input Parameter:
1857. viewer - an ASCII viewer
1858
1859 Options Database Keys:
1860+ -log_view [:filename] - Prints summary of log information
1861. -log_view :filename.py:ascii_info_detail - Saves logging information from each process as a Python file
1862. -log_view :filename.xml:ascii_xml - Saves a summary of the logging information in a nested format (see below for how to view it)
1863. -log_all - Saves a file Log.rank for each MPI process with details of each step of the computation
1864- -log_trace [filename] - Displays a trace of what each process is doing
1865
1866 Notes:
1867 It is possible to control the logging programatically but we recommend using the options database approach whenever possible
1868 By default the summary is printed to stdout.
1869
1870 Before calling this routine you must have called either PetscLogDefaultBegin() or PetscLogNestedBegin()
1871
1872 If PETSc is configured with --with-logging=0 then this functionality is not available
1873
1874 To view the nested XML format filename.xml first copy ${PETSC_DIR}/share/petsc/xml/performance_xml2html.xsl to the current
1875 directory then open filename.xml with your browser. Specific notes for certain browsers
1876$ Firefox and Internet explorer - simply open the file
1877$ Google Chrome - you must start up Chrome with the option --allow-file-access-from-files
1878$ Safari - see https://ccm.net/faq/36342-safari-how-to-enable-local-file-access
1879 or one can use the package http://xmlsoft.org/XSLT/xsltproc2.html to translate the xml file to html and then open it with
1880 your browser.
1881 Alternatively, use the script ${PETSC_DIR}/lib/petsc/bin/petsc-performance-view to automatically open a new browser
1882 window and render the XML log file contents.
1883
1884 The nested XML format was kindly donated by Koos Huijssen and Christiaan M. Klaij MARITIME RESEARCH INSTITUTE NETHERLANDS
1885
1886 Level: beginner
1887
1888.seealso: PetscLogDefaultBegin(), PetscLogDump()
1889@*/
1890PetscErrorCode PetscLogView(PetscViewer viewer)
1891{
1892 PetscErrorCode ierr;
1893 PetscBool isascii;
1894 PetscViewerFormat format;
1895 int stage, lastStage;
1896 PetscStageLog stageLog;
1897
1898 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1898; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1899 if (!PetscLogPLB) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SUP,"Must use -log_view or PetscLogDefaultBegin() before calling this routine")return PetscError(((MPI_Comm)0x44000001),1899,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,56,PETSC_ERROR_INITIAL,"Must use -log_view or PetscLogDefaultBegin() before calling this routine"
)
;
1900 /* Pop off any stages the user forgot to remove */
1901 lastStage = 0;
1902 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1902,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1903 ierr = PetscStageLogGetCurrent(stageLog, &stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1903,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1904 while (stage >= 0) {
1905 lastStage = stage;
1906 ierr = PetscStageLogPop(stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1906,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1907 ierr = PetscStageLogGetCurrent(stageLog, &stage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1907,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1908 }
1909 ierr = PetscObjectTypeCompare((PetscObject)viewer,PETSCVIEWERASCII"ascii",&isascii);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1909,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1910 if (!isascii) SETERRQ(PetscObjectComm((PetscObject)viewer),PETSC_ERR_SUP,"Currently can only view logging to ASCII")return PetscError(PetscObjectComm((PetscObject)viewer),1910,__func__
,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c",56,PETSC_ERROR_INITIAL
,"Currently can only view logging to ASCII")
;
1911 ierr = PetscViewerGetFormat(viewer,&format);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1911,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1912 if (format == PETSC_VIEWER_DEFAULT || format == PETSC_VIEWER_ASCII_INFO) {
1913 ierr = PetscLogView_Default(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1913,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1914 } else if (format == PETSC_VIEWER_ASCII_INFO_DETAIL) {
1915 ierr = PetscLogView_Detailed(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1915,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1916 } else if (format == PETSC_VIEWER_ASCII_CSV) {
1917 ierr = PetscLogView_CSV(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1917,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1918 } else if (format == PETSC_VIEWER_ASCII_XML) {
1919 ierr = PetscLogView_Nested(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1919,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1920 }
1921 ierr = PetscStageLogPush(stageLog, lastStage);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1921,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1922 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1923}
1924
1925/*@C
1926 PetscLogViewFromOptions - Processes command line options to determine if/how a PetscLog is to be viewed.
1927
1928 Collective on PETSC_COMM_WORLD
1929
1930 Not normally called by user
1931
1932 Level: intermediate
1933
1934@*/
1935PetscErrorCode PetscLogViewFromOptions(void)
1936{
1937 PetscErrorCode ierr;
1938 PetscViewer viewer;
1939 PetscBool flg;
1940 PetscViewerFormat format;
1941
1942 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1942; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1943 ierr = PetscOptionsGetViewer(PETSC_COMM_WORLD,NULL((void*)0),NULL((void*)0),"-log_view",&viewer,&format,&flg);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1943,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1944 if (flg) {
1945 ierr = PetscViewerPushFormat(viewer,format);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1945,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1946 ierr = PetscLogView(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1946,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1947 ierr = PetscViewerPopFormat(viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1947,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1948 ierr = PetscViewerDestroy(&viewer);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1948,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1949 }
1950 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1951}
1952
1953
1954
1955/*----------------------------------------------- Counter Functions -------------------------------------------------*/
1956/*@C
1957 PetscGetFlops - Returns the number of flops used on this processor
1958 since the program began.
1959
1960 Not Collective
1961
1962 Output Parameter:
1963 flops - number of floating point operations
1964
1965 Notes:
1966 A global counter logs all PETSc flop counts. The user can use
1967 PetscLogFlops() to increment this counter to include flops for the
1968 application code.
1969
1970 Level: intermediate
1971
1972.seealso: PetscTime(), PetscLogFlops()
1973@*/
1974PetscErrorCode PetscGetFlops(PetscLogDouble *flops)
1975{
1976 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1976; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1977 *flops = petsc_TotalFlops;
1978 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1979}
1980
1981PetscErrorCode PetscLogObjectState(PetscObject obj, const char format[], ...)
1982{
1983 PetscErrorCode ierr;
1984 size_t fullLength;
1985 va_list Argp;
1986
1987 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 1987; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
1988 if (!petsc_logObjects) PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1989 va_start(Argp, format)__builtin_va_start(Argp, format);
1990 ierr = PetscVSNPrintf(petsc_objects[obj->id].info, 64,format,&fullLength, Argp);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),1990,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
1991 va_end(Argp)__builtin_va_end(Argp);
1992 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
1993}
1994
1995
1996/*MC
1997 PetscLogFlops - Adds floating point operations to the global counter.
1998
1999 Synopsis:
2000 #include <petsclog.h>
2001 PetscErrorCode PetscLogFlops(PetscLogDouble f)
2002
2003 Not Collective
2004
2005 Input Parameter:
2006. f - flop counter
2007
2008
2009 Usage:
2010.vb
2011 PetscLogEvent USER_EVENT;
2012 PetscLogEventRegister("User event",0,&USER_EVENT);
2013 PetscLogEventBegin(USER_EVENT,0,0,0,0);
2014 [code segment to monitor]
2015 PetscLogFlops(user_flops)
2016 PetscLogEventEnd(USER_EVENT,0,0,0,0);
2017.ve
2018
2019 Notes:
2020 A global counter logs all PETSc flop counts. The user can use
2021 PetscLogFlops() to increment this counter to include flops for the
2022 application code.
2023
2024 Level: intermediate
2025
2026.seealso: PetscLogEventRegister(), PetscLogEventBegin(), PetscLogEventEnd(), PetscGetFlops()
2027
2028M*/
2029
2030/*MC
2031 PetscPreLoadBegin - Begin a segment of code that may be preloaded (run twice)
2032 to get accurate timings
2033
2034 Synopsis:
2035 #include <petsclog.h>
2036 void PetscPreLoadBegin(PetscBool flag,char *name);
2037
2038 Not Collective
2039
2040 Input Parameter:
2041+ flag - PETSC_TRUE to run twice, PETSC_FALSE to run once, may be overridden
2042 with command line option -preload true or -preload false
2043- name - name of first stage (lines of code timed separately with -log_view) to
2044 be preloaded
2045
2046 Usage:
2047.vb
2048 PetscPreLoadBegin(PETSC_TRUE,"first stage);
2049 lines of code
2050 PetscPreLoadStage("second stage");
2051 lines of code
2052 PetscPreLoadEnd();
2053.ve
2054
2055 Notes:
2056 Only works in C/C++, not Fortran
2057
2058 Flags available within the macro.
2059+ PetscPreLoadingUsed - true if we are or have done preloading
2060. PetscPreLoadingOn - true if it is CURRENTLY doing preload
2061. PetscPreLoadIt - 0 for the first computation (with preloading turned off it is only 0) 1 for the second
2062- PetscPreLoadMax - number of times it will do the computation, only one when preloading is turned on
2063 The first two variables are available throughout the program, the second two only between the PetscPreLoadBegin()
2064 and PetscPreLoadEnd()
2065
2066 Level: intermediate
2067
2068.seealso: PetscLogEventRegister(), PetscLogEventBegin(), PetscLogEventEnd(), PetscPreLoadEnd(), PetscPreLoadStage()
2069
2070
2071M*/
2072
2073/*MC
2074 PetscPreLoadEnd - End a segment of code that may be preloaded (run twice)
2075 to get accurate timings
2076
2077 Synopsis:
2078 #include <petsclog.h>
2079 void PetscPreLoadEnd(void);
2080
2081 Not Collective
2082
2083 Usage:
2084.vb
2085 PetscPreLoadBegin(PETSC_TRUE,"first stage);
2086 lines of code
2087 PetscPreLoadStage("second stage");
2088 lines of code
2089 PetscPreLoadEnd();
2090.ve
2091
2092 Notes:
2093 only works in C/C++ not fortran
2094
2095 Level: intermediate
2096
2097.seealso: PetscLogEventRegister(), PetscLogEventBegin(), PetscLogEventEnd(), PetscPreLoadBegin(), PetscPreLoadStage()
2098
2099M*/
2100
2101/*MC
2102 PetscPreLoadStage - Start a new segment of code to be timed separately.
2103 to get accurate timings
2104
2105 Synopsis:
2106 #include <petsclog.h>
2107 void PetscPreLoadStage(char *name);
2108
2109 Not Collective
2110
2111 Usage:
2112.vb
2113 PetscPreLoadBegin(PETSC_TRUE,"first stage);
2114 lines of code
2115 PetscPreLoadStage("second stage");
2116 lines of code
2117 PetscPreLoadEnd();
2118.ve
2119
2120 Notes:
2121 only works in C/C++ not fortran
2122
2123 Level: intermediate
2124
2125.seealso: PetscLogEventRegister(), PetscLogEventBegin(), PetscLogEventEnd(), PetscPreLoadBegin(), PetscPreLoadEnd()
2126
2127M*/
2128
2129
2130#else /* end of -DPETSC_USE_LOG section */
2131
2132PetscErrorCode PetscLogObjectState(PetscObject obj, const char format[], ...)
2133{
2134 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 2134; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
2135 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
2136}
2137
2138#endif /* PETSC_USE_LOG*/
2139
2140
2141PetscClassId PETSC_LARGEST_CLASSID = PETSC_SMALLEST_CLASSID1211211;
2142PetscClassId PETSC_OBJECT_CLASSID = 0;
2143
2144/*@C
2145 PetscClassIdRegister - Registers a new class name for objects and logging operations in an application code.
2146
2147 Not Collective
2148
2149 Input Parameter:
2150. name - The class name
2151
2152 Output Parameter:
2153. oclass - The class id or classid
2154
2155 Level: developer
2156
2157@*/
2158PetscErrorCode PetscClassIdRegister(const char name[],PetscClassId *oclass)
2159{
2160#if defined(PETSC_USE_LOG1)
2161 PetscStageLog stageLog;
2162 PetscInt stage;
2163 PetscErrorCode ierr;
2164#endif
2165
2166 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 2166; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
2167 *oclass = ++PETSC_LARGEST_CLASSID;
2168#if defined(PETSC_USE_LOG1)
2169 ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2169,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2170 ierr = PetscClassRegLogRegister(stageLog->classLog, name, *oclass);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2170,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2171 for (stage = 0; stage < stageLog->numStages; stage++) {
2172 ierr = PetscClassPerfLogEnsureSize(stageLog->stageInfo[stage].classLog, stageLog->classLog->numClasses);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2172,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2173 }
2174#endif
2175 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
2176}
2177
2178#if defined(PETSC_USE_LOG1) && defined(PETSC_HAVE_MPE)
2179#include <mpe.h>
2180
2181PetscBool PetscBeganMPE = PETSC_FALSE;
2182
2183PETSC_INTERNextern __attribute__((visibility ("hidden"))) PetscErrorCode PetscLogEventBeginMPE(PetscLogEvent,int,PetscObject,PetscObject,PetscObject,PetscObject);
2184PETSC_INTERNextern __attribute__((visibility ("hidden"))) PetscErrorCode PetscLogEventEndMPE(PetscLogEvent,int,PetscObject,PetscObject,PetscObject,PetscObject);
2185
2186/*@C
2187 PetscLogMPEBegin - Turns on MPE logging of events. This creates large log files
2188 and slows the program down.
2189
2190 Collective over PETSC_COMM_WORLD
2191
2192 Options Database Keys:
2193. -log_mpe - Prints extensive log information
2194
2195 Notes:
2196 A related routine is PetscLogDefaultBegin() (with the options key -log_view), which is
2197 intended for production runs since it logs only flop rates and object
2198 creation (and should not significantly slow the programs).
2199
2200 Level: advanced
2201
2202
2203.seealso: PetscLogDump(), PetscLogDefaultBegin(), PetscLogAllBegin(), PetscLogEventActivate(),
2204 PetscLogEventDeactivate()
2205@*/
2206PetscErrorCode PetscLogMPEBegin(void)
2207{
2208 PetscErrorCode ierr;
2209
2210 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 2210; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
2211 /* Do MPE initialization */
2212 if (!MPE_Initialized_logging()) { /* This function exists in mpich 1.1.2 and higher */
2213 ierr = PetscInfo(0,"Initializing MPE.\n")PetscInfo_Private(__func__,0,"Initializing MPE.\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2213,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2214 ierr = MPE_Init_log();CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2214,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2215
2216 PetscBeganMPE = PETSC_TRUE;
2217 } else {
2218 ierr = PetscInfo(0,"MPE already initialized. Not attempting to reinitialize.\n")PetscInfo_Private(__func__,0,"MPE already initialized. Not attempting to reinitialize.\n"
)
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2218,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2219 }
2220 ierr = PetscLogSet(PetscLogEventBeginMPE, PetscLogEventEndMPE);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2220,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2221 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
2222}
2223
2224/*@C
2225 PetscLogMPEDump - Dumps the MPE logging info to file for later use with Jumpshot.
2226
2227 Collective over PETSC_COMM_WORLD
2228
2229 Level: advanced
2230
2231.seealso: PetscLogDump(), PetscLogAllBegin(), PetscLogMPEBegin()
2232@*/
2233PetscErrorCode PetscLogMPEDump(const char sname[])
2234{
2235 char name[PETSC_MAX_PATH_LEN4096];
2236 PetscErrorCode ierr;
2237
2238 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 2238; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
2239 if (PetscBeganMPE) {
2240 ierr = PetscInfo(0,"Finalizing MPE.\n")PetscInfo_Private(__func__,0,"Finalizing MPE.\n");CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2240,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2241 if (sname) {
2242 ierr = PetscStrcpy(name,sname);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2242,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2243 } else {
2244 ierr = PetscGetProgramName(name,PETSC_MAX_PATH_LEN4096);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2244,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2245 }
2246 ierr = MPE_Finish_log(name);CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2246,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2247 } else {
2248 ierr = PetscInfo(0,"Not finalizing MPE (not started by PETSc).\n")PetscInfo_Private(__func__,0,"Not finalizing MPE (not started by PETSc).\n"
)
;CHKERRQ(ierr)do {if (__builtin_expect(!!(ierr),0)) return PetscError(((MPI_Comm
)0x44000001),2248,__func__,"/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"
,ierr,PETSC_ERROR_REPEAT," ");} while (0)
;
2249 }
2250 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
2251}
2252
2253#define PETSC_RGB_COLORS_MAX 39
2254static const char *PetscLogMPERGBColors[PETSC_RGB_COLORS_MAX] = {
2255 "OliveDrab: ",
2256 "BlueViolet: ",
2257 "CadetBlue: ",
2258 "CornflowerBlue: ",
2259 "DarkGoldenrod: ",
2260 "DarkGreen: ",
2261 "DarkKhaki: ",
2262 "DarkOliveGreen: ",
2263 "DarkOrange: ",
2264 "DarkOrchid: ",
2265 "DarkSeaGreen: ",
2266 "DarkSlateGray: ",
2267 "DarkTurquoise: ",
2268 "DeepPink: ",
2269 "DarkKhaki: ",
2270 "DimGray: ",
2271 "DodgerBlue: ",
2272 "GreenYellow: ",
2273 "HotPink: ",
2274 "IndianRed: ",
2275 "LavenderBlush: ",
2276 "LawnGreen: ",
2277 "LemonChiffon: ",
2278 "LightCoral: ",
2279 "LightCyan: ",
2280 "LightPink: ",
2281 "LightSalmon: ",
2282 "LightSlateGray: ",
2283 "LightYellow: ",
2284 "LimeGreen: ",
2285 "MediumPurple: ",
2286 "MediumSeaGreen: ",
2287 "MediumSlateBlue:",
2288 "MidnightBlue: ",
2289 "MintCream: ",
2290 "MistyRose: ",
2291 "NavajoWhite: ",
2292 "NavyBlue: ",
2293 "OliveDrab: "
2294};
2295
2296/*@C
2297 PetscLogMPEGetRGBColor - This routine returns a rgb color useable with PetscLogEventRegister()
2298
2299 Not collective. Maybe it should be?
2300
2301 Output Parameter
2302. str - character string representing the color
2303
2304 Level: developer
2305
2306.seealso: PetscLogEventRegister
2307@*/
2308PetscErrorCode PetscLogMPEGetRGBColor(const char *str[])
2309{
2310 static int idx = 0;
2311
2312 PetscFunctionBegindo { do { ; if (petscstack && (petscstack->currentsize
< 64)) { petscstack->function[petscstack->currentsize
] = __func__; petscstack->file[petscstack->currentsize]
= "/sandbox/petsc/petsc.next-tmp/src/sys/logging/plog.c"; petscstack
->line[petscstack->currentsize] = 2312; petscstack->
petscroutine[petscstack->currentsize] = PETSC_TRUE; petscstack
->currentsize++; } if (petscstack) { petscstack->hotdepth
+= (PETSC_FALSE || petscstack->hotdepth); } ; } while (0)
; ; } while (0)
;
2313 *str = PetscLogMPERGBColors[idx];
2314 idx = (idx + 1)% PETSC_RGB_COLORS_MAX;
2315 PetscFunctionReturn(0)do { do { ; if (petscstack && petscstack->currentsize
> 0) { petscstack->currentsize--; petscstack->function
[petscstack->currentsize] = 0; petscstack->file[petscstack
->currentsize] = 0; petscstack->line[petscstack->currentsize
] = 0; petscstack->petscroutine[petscstack->currentsize
] = PETSC_FALSE; } if (petscstack) { petscstack->hotdepth =
(((petscstack->hotdepth-1)<(0)) ? (0) : (petscstack->
hotdepth-1)); } ; } while (0); return(0);} while (0)
;
2316}
2317
2318#endif /* PETSC_USE_LOG && PETSC_HAVE_MPE */