1*a4963045SJacob Faibussowitsch #pragma once 2b665b14eSToby Isaac 3b665b14eSToby Isaac #include <petsclog.h> 4b665b14eSToby Isaac 5b665b14eSToby Isaac /* SUBMANSEC = Profiling */ 6b665b14eSToby Isaac 7b665b14eSToby Isaac /* These data structures are no longer used by any non-deprecated PETSc interface functions */ 8b665b14eSToby Isaac 9b665b14eSToby Isaac typedef struct { 10b665b14eSToby Isaac char *name; 11b665b14eSToby Isaac PetscClassId classid; 12b665b14eSToby Isaac } PetscClassRegInfo; 13b665b14eSToby Isaac 14b665b14eSToby Isaac typedef struct _n_PetscClassRegLog *PetscClassRegLog; 15b665b14eSToby Isaac struct _n_PetscClassRegLog { 16b665b14eSToby Isaac int numClasses; 17b665b14eSToby Isaac int maxClasses; 18b665b14eSToby Isaac PetscClassRegInfo *classInfo; 19b665b14eSToby Isaac }; 20b665b14eSToby Isaac 21b665b14eSToby Isaac typedef struct { 22b665b14eSToby Isaac PetscClassId id; 23b665b14eSToby Isaac int creations; 24b665b14eSToby Isaac int destructions; 25b665b14eSToby Isaac PetscLogDouble mem; 26b665b14eSToby Isaac PetscLogDouble descMem; 27b665b14eSToby Isaac } PetscClassPerfInfo; 28b665b14eSToby Isaac 29b665b14eSToby Isaac typedef struct _n_PetscClassPerfLog *PetscClassPerfLog; 30b665b14eSToby Isaac struct _n_PetscClassPerfLog { 31b665b14eSToby Isaac int numClasses; 32b665b14eSToby Isaac int maxClasses; 33b665b14eSToby Isaac PetscClassPerfInfo *classInfo; 34b665b14eSToby Isaac }; 35b665b14eSToby Isaac 36b665b14eSToby Isaac typedef struct { 37b665b14eSToby Isaac char *name; 38b665b14eSToby Isaac PetscClassId classid; 39b665b14eSToby Isaac PetscBool collective; 40b665b14eSToby Isaac #if defined(PETSC_HAVE_TAU_PERFSTUBS) 41b665b14eSToby Isaac void *timer; 42b665b14eSToby Isaac #endif 43b665b14eSToby Isaac #if defined(PETSC_HAVE_MPE) 44b665b14eSToby Isaac int mpe_id_begin; 45b665b14eSToby Isaac int mpe_id_end; 46b665b14eSToby Isaac #endif 47b665b14eSToby Isaac } PetscEventRegInfo; 48b665b14eSToby Isaac 49b665b14eSToby Isaac typedef struct _n_PetscEventRegLog *PetscEventRegLog; 50b665b14eSToby Isaac struct _n_PetscEventRegLog { 51b665b14eSToby Isaac int numEvents; 52b665b14eSToby Isaac int maxEvents; 53b665b14eSToby Isaac PetscEventRegInfo *eventInfo; /* The registration information for each event */ 54b665b14eSToby Isaac }; 55b665b14eSToby Isaac 56b665b14eSToby Isaac typedef struct _n_PetscEventPerfLog *PetscEventPerfLog; 57b665b14eSToby Isaac struct _n_PetscEventPerfLog { 58b665b14eSToby Isaac int numEvents; 59b665b14eSToby Isaac int maxEvents; 60b665b14eSToby Isaac PetscEventPerfInfo *eventInfo; 61b665b14eSToby Isaac }; 62b665b14eSToby Isaac 63b665b14eSToby Isaac typedef struct _PetscStageInfo { 64b665b14eSToby Isaac char *name; 65b665b14eSToby Isaac PetscBool used; 66b665b14eSToby Isaac PetscEventPerfInfo perfInfo; 67b665b14eSToby Isaac PetscClassPerfLog classLog; 68b665b14eSToby Isaac #if defined(PETSC_HAVE_TAU_PERFSTUBS) 69b665b14eSToby Isaac void *timer; 70b665b14eSToby Isaac #endif 71b665b14eSToby Isaac } PetscStageInfo; 72b665b14eSToby Isaac 73b665b14eSToby Isaac typedef struct _n_PetscStageLog *PetscStageLog; 74b665b14eSToby Isaac struct _n_PetscStageLog { 75b665b14eSToby Isaac int numStages; 76b665b14eSToby Isaac int maxStages; 77b665b14eSToby Isaac PetscIntStack stack; 78b665b14eSToby Isaac int curStage; 79b665b14eSToby Isaac PetscStageInfo *stageInfo; 80b665b14eSToby Isaac PetscEventRegLog eventLog; 81b665b14eSToby Isaac PetscClassRegLog classLog; 82b665b14eSToby Isaac }; 83b665b14eSToby Isaac 8464550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogGetState()", "PetscStageLog is no longer used.") PETSC_UNUSED static PetscStageLog petsc_stageLog = PETSC_NULLPTR; 85b665b14eSToby Isaac 86b665b14eSToby Isaac /*@C 87b665b14eSToby Isaac PetscLogGetStageLog - Deprecated. 88b665b14eSToby Isaac 89b665b14eSToby Isaac Level: deprecated 90b665b14eSToby Isaac 91b665b14eSToby Isaac Note: 92b665b14eSToby Isaac PETSc performance logging and profiling is now split up between the logging state (`PetscLogState`) and the log handler (`PetscLogHandler`). 93b665b14eSToby Isaac The global logging state is obtained with `PetscLogGetState()`; many log handlers may be used at once (`PetscLogHandlerStart()`) and the default log handler is not directly accessible. 94b665b14eSToby Isaac 95b665b14eSToby Isaac .seealso: [](ch_profiling), `PetscLogEventGetPerfInfo()` 96b665b14eSToby Isaac @*/ 97b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogGetState()", "PetscStageLog is no longer used.") static inline PetscErrorCode PetscLogGetStageLog(PetscStageLog *s) 98b665b14eSToby Isaac { 9964550dbaSPierre Jolivet *s = PETSC_NULLPTR; 100b665b14eSToby Isaac return PETSC_SUCCESS; 101b665b14eSToby Isaac } 102b665b14eSToby Isaac 103b665b14eSToby Isaac /*@C 104b665b14eSToby Isaac PetscStageLogGetCurrent - Deprecated 105b665b14eSToby Isaac 106b665b14eSToby Isaac Level: deprecated 107b665b14eSToby Isaac 108b665b14eSToby Isaac .seealso: [](ch_profiling) 109b665b14eSToby Isaac @*/ 110b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogStateGetCurrentStage()", "PetscStageLog is no longer used.") static inline PetscErrorCode PetscStageLogGetCurrent(PetscStageLog a, int *b) 111b665b14eSToby Isaac { 112b665b14eSToby Isaac (void)a; 113b665b14eSToby Isaac *b = -1; 114b665b14eSToby Isaac return PETSC_SUCCESS; 115b665b14eSToby Isaac } 116b665b14eSToby Isaac 117b665b14eSToby Isaac /*@C 118b665b14eSToby Isaac PetscStageLogGetEventPerfLog - Deprecated 119b665b14eSToby Isaac 120b665b14eSToby Isaac Level: deprecated 121b665b14eSToby Isaac 122b665b14eSToby Isaac Note: 123b665b14eSToby Isaac PETSc performance logging and profiling is now split up between the logging state (`PetscLogState`) and the log handler (`PetscLogHandler`). 124b665b14eSToby Isaac The global logging state is obtained with `PetscLogGetState()`; many log handlers may be used at once (`PetscLogHandlerStart()`) and the default log handler is not directly accessible. 125b665b14eSToby Isaac 126b665b14eSToby Isaac .seealso: [](ch_profiling) 127b665b14eSToby Isaac @*/ 128b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogStateEventGetInfo()", "PetscStageLog is no longer used.") static inline PetscErrorCode PetscStageLogGetEventPerfLog(PetscStageLog a, int b, PetscEventPerfLog *c) 129b665b14eSToby Isaac { 130b665b14eSToby Isaac (void)a; 131b665b14eSToby Isaac (void)b; 13264550dbaSPierre Jolivet *c = PETSC_NULLPTR; 133b665b14eSToby Isaac return PETSC_SUCCESS; 134b665b14eSToby Isaac } 135b665b14eSToby Isaac 13664550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPLB)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject) = PETSC_NULLPTR; 13764550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPLE)(PetscLogEvent, int, PetscObject, PetscObject, PetscObject, PetscObject) = PETSC_NULLPTR; 13864550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPHC)(PetscObject) = PETSC_NULLPTR; 13964550dbaSPierre Jolivet PETSC_DEPRECATED_OBJECT(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) PETSC_UNUSED static PetscErrorCode (*PetscLogPHD)(PetscObject) = PETSC_NULLPTR; 140b665b14eSToby Isaac 141b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "nothing", "PETSc does not guarantee a stack property of logging events.") static inline PetscErrorCode PetscLogPushCurrentEvent_Internal(PetscLogEvent e) 142b665b14eSToby Isaac { 143b665b14eSToby Isaac (void)e; 144b665b14eSToby Isaac return PETSC_SUCCESS; 145b665b14eSToby Isaac } 146b665b14eSToby Isaac 147b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "nothing", "PETSc does not guarantee a stack property of logging events.") static inline PetscErrorCode PetscLogPopCurrentEvent_Internal(void) 148b665b14eSToby Isaac { 149b665b14eSToby Isaac return PETSC_SUCCESS; 150b665b14eSToby Isaac } 151b665b14eSToby Isaac 152b665b14eSToby Isaac /*@C 153b665b14eSToby Isaac PetscLogAllBegin - Equivalent to `PetscLogDefaultBegin()`. 154b665b14eSToby Isaac 155b665b14eSToby Isaac Logically Collective on `PETSC_COMM_WORLD` 156b665b14eSToby Isaac 157b665b14eSToby Isaac Level: deprecated 158b665b14eSToby Isaac 159b665b14eSToby Isaac Note: 160b665b14eSToby Isaac In previous versions, PETSc's documentation stated that `PetscLogAllBegin()` "Turns on extensive logging of objects and events," which was not actually true. 161b665b14eSToby Isaac The actual way to turn on extensive logging of objects and events was, and remains, to call `PetscLogActions()` and `PetscLogObjects()`. 162b665b14eSToby Isaac 163b665b14eSToby Isaac .seealso: [](ch_profiling), `PetscLogDump()`, `PetscLogDefaultBegin()`, `PetscLogActions()`, `PetscLogObjects()` 164b665b14eSToby Isaac @*/ 165b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogDefaultBegin()", ) static inline PetscErrorCode PetscLogAllBegin(void) 166b665b14eSToby Isaac { 167b665b14eSToby Isaac return PetscLogDefaultBegin(); 168b665b14eSToby Isaac } 169b665b14eSToby Isaac 170b665b14eSToby Isaac /*@C 171b665b14eSToby Isaac PetscLogSet - Deprecated. 172b665b14eSToby Isaac 173b665b14eSToby Isaac Level: deprecated 174b665b14eSToby Isaac 175b665b14eSToby Isaac Note: 176b665b14eSToby Isaac PETSc performance logging and profiling is now split up between the logging state (`PetscLogState`) and the log handler (`PetscLogHandler`). 177b665b14eSToby Isaac The global logging state is obtained with `PetscLogGetState()`; many log handlers may be used at once (`PetscLogHandlerStart()`) and the default log handler is not directly accessible. 178b665b14eSToby Isaac 179b665b14eSToby Isaac .seealso: [](ch_profiling), `PetscLogEventGetPerfInfo()` 180b665b14eSToby Isaac @*/ 181b665b14eSToby Isaac PETSC_DEPRECATED_FUNCTION(3, 20, 0, "PetscLogLegacyCallbacksBegin()", ) 182b665b14eSToby Isaac static inline PetscErrorCode PetscLogSet(PetscErrorCode (*a)(int, int, PetscObject, PetscObject, PetscObject, PetscObject), PetscErrorCode (*b)(int, int, PetscObject, PetscObject, PetscObject, PetscObject)) 183b665b14eSToby Isaac { 18464550dbaSPierre Jolivet return PetscLogLegacyCallbacksBegin(a, b, PETSC_NULLPTR, PETSC_NULLPTR); 185b665b14eSToby Isaac } 186