240
граммы. MPI имеет простые функции для измерения времени выпол-
нения программы или ее частей.
Функция MPI_Wtime возвращает число с плавающей запятой, ко-
торое является текущим отсчетом времени в секундах. Следовательно,
чтобы узнать время выполнения отрезка программы, нужно выпол-
нить
MPI_Wtime в начале и в конце отрезка, а затем вычесть отсчеты.
Для получения отсчетов используются таймеры высокого разрешения.
Если их нет в конкретном процессоре, то и измерения невозможны.
Программа для вычисления значения
π для языка Си, использующая
функцию
MPI_Wtime, представлена в параграфе 1.5.
Функция MPI_Wtick не имеет никаких аргументов. Она возвра-
щает число с плавающей точкой, которое указывает время между
двумя последовательными тактами (период) тактового генератора.
В MPI используются и более мощные средства измерения и анали-
за эффективности параллельных вычислений. Они связаны с создани-
ем логфайлов, в которых регистрируются заранее заданные пользова-
телем события. Затем производится анализ и визуализация результа-
тов регистрации. Все эти средства реализованы в основном в библио-
теке MPE и представлены в параграфах 2.3 и 2.4.
12.3. ИНТЕРФЕЙС ПРОФИЛИРОВАНИЯ
Профилем некоторого процесса или объекта называют совокуп-
ность его основных параметров. Профилирование – это процесс сбора
этих параметров. В главе 2 и предыдущем параграфе были представ-
лены некоторые фиксированные для MPICH и MPE методы профили-
рования. Однако получаемый с помощью этих методов набор
результатов не всегда удовлетворяет пользователей. Поэтому
разработчики MPI предоставили непосредственно пользователю
вариант профилирующего механизма, с помощью которого он сам
сможет запрограммировать сбор любой нужной ему информации.
Чтобы обеспечить это, реализация MPI должна:
1. Обеспечить механизм, с помощью которого ко всем определенным
в MPI функциям можно обращаться по смещенному имени. Таким
образом все функции MPI
, которые начинаются с префиксом
“
MPI_“, должны быть также доступны с префиксом “PMPI_”.
2. Гарантировать, что не измененные функции также можно включать
в исполнительный файл без конфликтов в отношении имен.
3. Обеспечивать подпрограмму MPI_PCONTROL холостой коман-
дой.