next up previous contents
Next: Интерпретация вывода -log_info: Информативные Up: Начальные сведения о PETSc Previous: Профилирование нескольких секций кода   Contents

Ограничение регистрации событий

По умолчанию все операции 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()).



2004-06-22