По умолчанию все операции PETSc регистрируются. Для включения или
отключения регистрации индивидуальных событий PETSc используются функции:
PetscLogEventActivate (int event);
PetscLogEventDeactivate (int event);
Значение event может быть либо предопределенным событием
PETSc (указанным в файле ${PETSC_DIR}/include/petsclog.h),
либо полученным с помощью PetscLogEventRegister().
PETSc также предоставляет процедуры для деактивации (или активации)
регистрации всего компонента библиотеки. В настоящее время компонентами,
которые поддерживают (де)активацию регистрации являются Mat
(матрицы), Vec (векторы), SLES (линейные решатели,
включая KSP и PC ) и SNES (нелинейные решатели):
PetscLogEventDeactivateClass (MAT_COOKIE);
/* включает PC и KSP */
PetscLogEventDeactivateClass (SLES_COOKIE);
PetscLogEventDeactivateClass (VEC_COOKIE);
PetscLogEventDeactivateClass (SNES_COOKIE);
и
PetscLogEventActivateClass (MAT_COOKIE);
/* включает PC и KSP */
PetscLogEventActivateClass (SLES_COOKIE);
PetscLogEventActivateClass (VEC_COOKIE);
PetscLogEventActivateClass (SNES_COOKIE);
Помните, что опция -log_all создает избыток данных профилирования,
что может привести к трудностям в PETScView из-за ограничений памяти
Tcl/Tk. Поэтому, в общем случае нужно использовать -log_all,
если программы выполняются с относительно небольшим количеством событий,
или с отключенной регистрацией событий, возникающих слишком часто
(например, VecSetValues(), MatSetValues()).