Для визуализации событий PETSc можно также использовать пакеты Upshot
(или Jumpshot). Эти пакеты поставляются вместе с библиотекой MPE, являющейся
частью MPICH - реализации MPI. Опция -log_mpe [logfile]
создает файл регистрации событий, пригодный для просмотра с помощью
Upshot. Пользователь может применять либо файл регистрации по умолчанию
mpe.log, либо указывать собственное имя файла через параметр
logfile. Для использовыания этой опции регистрации пользователь
может работать с любой реализацией MPI (не обязательно MPICH), но
должен построить и скомпоновать часть MPE из MPICH. Пользователь должен
также откомпилировать библиотеку PETSc с флагом -DPETSC_HAVE_MPE,
не установленным по умолчанию. Включить регистрацию MPE пользователь
может, указав значение
-DPETSC_HAVE_MPE в переменной PCONF
каталога ${PETSC_DIR}/
bmake/${PETSC_ARCH} /packages
и пересобрав все в PETSc. По умолчанию не все события PETSc регистрируются
MPE. Например, поскольку MatSetValues () может вызываться
в программе тысячи раз, по умолчанию ее вызовы не регистрируются MPE.
Для активирования регистрации отдельных событий с помощью MPE, нужно
использовать функцию:
Для отключения регистрации события в MPE, нужно использовать:
Событие может быть либо предопределено в PETSc (как показано в файле ${PETSC_DIR}/include/petsclog.h) или получено через PetscLogEventRegister (). Эти процедуры можно вызывать столько раз, сколько потребуется приложению, так что можно ограничить регистрацию событий с помощью MPE для отдельных сегментов кода. Чтобы увидеть, какие события регистрируются по умолчанию, пользователь может просмотреть исходный код (см. файлы src/plot/src/plogmpe.c и include/petsclog.h). Разрабатываются простая программа и графический интерфейс, позволяющие просмотреть, какие регистрируемые события уже определены, и определить новые. Пользователь также может регистрировать события MPI. Чтобы сделать это, рассматривайте приложение PETSc как приложение MPI и следуйте инструкциям реализации MPI для регистрации вызовов MPI. Например, при использовании MPICH необходимо добавить -llmpi в список библиотек перед -lmpi.