next up previous contents
Next: Написание определения обрамления Up: Руководство пользователя mpich, переносимой Previous: HP-UX   Contents

Автоматическая генерация профилирующих библиотек

Генератор профилирующих обрамлений (wrappergen) создан для дополнения профилирующего интерфейса MPI. Он позволяет пользователю создавать любое количество мета-обрамлений, котороые могут применяться к любому количеству функций MPI. Обрамления могут находиться в отдельных файлах, и могут корректно вкладываться друг в друга, так что в отдельной функции может существовать более одного уровня профилирования.

wrappergen использует три источника ввода:

  1. Список функций, для которых генерируются обрамления.
  2. Описания профилируемых функций. Для достижения скорости и простоты разбора используется специальный формат. См. файл `proto'. Функции MPI-1 находятся в `mpi_proto'. Функции ввода-вывода из MPI-2 находятся в `mpiio_proto'.
  3. Определение обрамления.

Список функций представляет собой просто файл имен функций, разделенных пробелами. Если он опущен, любые макросы forallfn или fnall будут расширены на каждую функцию в файле определений.

Если описания функций отсутствуют, используются те, которые находятся в `mpi_proto' (это множество с определением PROTO_FILE в `Makefile').

Опции wrappergen:

-w file
Добавить файл для использования в списке файлов обрамлений.
-f file
Файл содержит список имен функций для профилирования, разделенный пробелами.
-p file
Файл содержит определения прототипов специальных функций.
-o file
Направить вывод в файл.
Например, для оценки времени каждой операции ввода-вывода, используйте
cd mpe/profiling/lib
../wrappergen/wrappergen -p ../wrappergen/mpiio_proto $\backslash$
-w time_wrappers.w > time_io.c
Результирующий код требует только версию MPI_Finalize для вывода временных величин. Она может быть написана либо добавлением MPI_Finalize и MPI_Init к `mpiio_proto', либо через простое редактирование версии, полученной при использовании `mpi_proto' вместо `mpiio_proto'.

Subsections

Alex Otwagin 2002-12-16