Ich habe eine Anwendung mit PETSc. Für die Leistungsüberwachung unter (nahen) Produktionsläufen möchte ich eine kleine Anzahl verschiedener Werte protokollieren. Einige werden von PETSc generiert, andere nicht.Werte aus PetscEventPerfInfo lesen
Jetzt frage ich mich: Wie kann ich den Zeitwert aus PetscEventPerfInfo
lesen, um es in meine Datei zu schreiben? Ich kann keinen Dokumentationseintrag über PetscEventPerfInfo
finden, daher bin ich mir nicht sicher, ob ich ihn irgendwie anfassen soll.
Allerdings fand ich die folgende Methode, die im Grunde die Struktur des PetscEventPerfInfo
zeigt:
PetscErrorCode EventPerfInfoClear(PetscEventPerfInfo *eventInfo)
{
PetscFunctionBegin;
eventInfo->id = -1;
eventInfo->active = PETSC_TRUE;
eventInfo->visible = PETSC_TRUE;
eventInfo->depth = 0;
eventInfo->count = 0;
eventInfo->flops = 0.0;
eventInfo->flops2 = 0.0;
eventInfo->flopsTmp = 0.0;
eventInfo->time = 0.0;
eventInfo->time2 = 0.0;
eventInfo->timeTmp = 0.0;
eventInfo->numMessages = 0.0;
eventInfo->messageLength = 0.0;
eventInfo->numReductions = 0.0;
PetscFunctionReturn(0);
}
Ich habe eine starke Vermutung, dass es nur eventInfo->time
, aber ich bin absolut nicht sicher, ob es ist, es zu lesen speichern oder ob es eine "offizielle" Möglichkeit gibt, von dieser Struktur zu lesen.
Also, was soll ich tun, wenn ich nur den Zeitwert in eine Variable für die weitere Verwendung lesen möchte?