next up previous contents
Next: Анимация в реальном времени Up: Профилирующие библиотеки Previous: Автоматическая регистрация   Contents

Настраиваемая регистрация

В дополнение к использованию предопределенных библиотек регистрации MPE для регистрации всех вызовов MPI, вызовы регистрации MPE могут встраиваться в пользовательские программы MPI для определения и регистрации состояний. Эти состояния называются состояниями, определяемыми пользователем. Состояния могут вкладываться друг в друга, позволяя определять состояния, описывающие процедуру пользователя, содержащую несколько вызовов MPI, и показывать как состояние, определенное пользователем, так и содержащиеся в нем операции MPI. Процедура MPE_Log_get_event_number может использоваться для назначения уникальных номеров событий5 из системы MPE. Процедуры MPE_Describe_state и MPE_Log_event могут затем использоваться для описания пользовательских состояний. Следующий пример иллюстрирует использование этих процедур.
int eventID_begin, eventID_end;
...
eventID_begin = MPE_Log_get_event_number ();
eventID_end = MPE_Log_get_event_number ();
...
MPE_Describe_state ( eventID_begin, eventID_end, ``Amult'', ``bluegreen'' );
...
MyAmult ( Matrix m, Vector v )
/* Записывает стартовое событие вместе с размером матрицы */
MPE_Log_event ( eventID_begin, m->n, (char *)0 );
... Код Amult, включая вызовы MPI ...
MPE_Log_event ( eventID_end, 0, (char *)0 );
Log-файл, генерируемый этим кодом, будет отмечать процедуры MPI внутри процедуры MyAmult зелено-голубым прямоугольником. Цвет, использованный в этом коде выбран из файла rgb.txt, предоставленного инсталляцией сервера X, т.е. `rgb.txt' находится в каталоге `/usr/X11R6/lib/X11' в Linux.

Если бибилотека регистрации MPE `liblmpe.a' не связаны с программой пользователя, необходимо использовать перед и после всех вызовов MPE процедуры MPE_Init_log и MPE_Finish_log. Программы-примеры `cpilog.c' и `fpi.f' для иллюстрации использования этих процедур MPE находятся в каталоге исходных кодов MPE `contrib/test' или в установленном каталоге `share/examples'.


Alex Otwagin 2002-12-16