exponenta event banner

mpiprofile

Время параллельной связи и выполнения профиля

Синтаксис

mpiprofile
mpiprofile on <options>
mpiprofile off
mpiprofile reset
mpiprofile viewer
mpiprofile resume
mpiprofile clear
mpiprofile status
stats = mpiprofile('info')
mpiprofile('viewer',stats)

Описание

mpiprofile включает или отключает сбор данных параллельного профилировщика на работнике MATLAB ®, работающем в параллельном пуле. Вы можете использоватьmpiprofile либо от клиента MATLAB, либо непосредственно от работника из spmd блок. При выполнении mpiprofile от клиента MATLAB, mpiprofile выполняет действие над работниками MATLAB.

mpiprofile агрегирует статистику времени выполнения и времени связи. mpiprofile собирает статистику аналогично выполнению profile на каждом работнике MATLAB. По умолчанию расширения параллельного профилирования включают поля массива, которые собирают информацию о взаимодействии с каждым из других работников.

mpiprofile on <options> запускает параллельный профилировщик и очищает ранее записанную статистику профиля.

mpiprofile использует следующие опции.

ВыборОписание

-messagedetail default

-messagedetail simplified

-messagedetail off

Эта опция определяет сведения, в которых хранится коммуникационная информация.

-messagedetail default собирает информацию об экземпляре для каждого работника.

-messagedetail simplified отключает коллекцию для *PerLab поля данных, что уменьшает затраты на профилирование. Если у вас очень большой кластер, вы можете использовать этот параметр; тем не менее, вы не получите все детализированные межрабочие сюжеты общения в зрителе.

Обратите внимание, что изменение -messagedetail очистит все ранее сохраненные данные.

Сведения о структуре возвращаемых данных см. в разделе mpiprofile info ниже.

-history

-nohistory

-historysize <size>

mpiprofile поддерживает эти опции так же, как и стандарт profile.

Других нет profile опции поддерживаются mpiprofile. Эти три параметра не влияют на данные, отображаемые mpiprofile viewer.

mpiprofile off останавливает параллельный профилировщик. Чтобы сбросить состояние профилировщика и отключить сбор информации о связи, используйте mpiprofile reset.

mpiprofile reset отключает параллельный профилировщик и сбрасывает сбор данных обратно в стандартный профилировщик. Если вы не звоните reset, последующие profile команды будут собирать информацию MPI.

mpiprofile viewer останавливает профилировщик и открывает графический браузер профилей с параллельными опциями. Выходные данные представляют собой HTML-отчет, отображаемый в окне профилировщика. Список файлов в нижней части страницы профиля функции показывает несколько столбцов слева от каждой строки кода. На странице сводки:

  • Столбец 1 указывает количество вызовов этой линии.

  • В столбце 2 указано общее время, затраченное на линию в секундах.

  • Столбцы 3-6 содержат информацию связи, относящуюся к параллельному профилировщику.

mpiprofile resume перезапускает профилировщик без очистки ранее записанной статистики функций.

mpiprofile clear очищает информацию о профиле.

mpiprofile status возвращает статус параллельного профилировщика.

stats = mpiprofile('info') останавливает параллельный профилировщик и возвращает структуру, содержащую статистику профилировщика. stats содержит те же поля, что и возвращенные profile('info'), со следующими дополнительными полями в FunctionTable вход. Все эти поля записываются на основе функции и строки, за исключением *PerLab поля.

ОбластьОписание
BytesSentЗаписывает количество отправленных данных
BytesReceivedЗаписывает количество полученных данных
TimeWastedЗаписывает время ожидания связи
CommTimeРегистрирует время связи
CommTimePerLabВектор времени приема сообщений для каждого работника
TimeWastedPerLabВектор времени ожидания связи для каждого работника
BytesReceivedPerLabВектор данных, полученных от каждого работника

Три *PerLab поля собираются только для каждой функции, и их можно отключить, введя следующую команду:

mpiprofile on -messagedetail simplified

При запуске из клиента MATLAB stats = mpiprofile('info') возвращает информацию от всех работников. Когда вы запускаете его на работнике, mpiprofile('info') возвращает сведения о профиле, относящиеся к этому работнику.

mpiprofile('viewer',stats) открывает графический браузер профилей, показывающий информацию о профилировании, содержащуюся в stats. Вы можете использовать stats = mpiprofile('info') на клиенте для создания массива структуры.

mpiprofile не принимает -timer clock опции, поскольку часы таймера связи должны быть реальными.

Дополнительные сведения и примеры использования параллельного профилировщика см. в разделе Профилирование параллельного кода.

Примеры

свернуть все

Включите профилировщик. При использовании настроек по умолчанию при включении профилировщика будет автоматически создан параллельный пул, если он еще не создан.

mpiprofile on

Запустите параллельный код.

A = rand(1000,'distributed');
b = sum(A, 2);
x = A\b;

Отображение сведений о собранном профиле.

mpiprofile viewer

Параллельный профилировщик собирает информацию о выполнении кода на каждом работнике и о связях между работниками. После профилирования параллельного кода с помощью mpiprofile, запустите графическое средство просмотра путем вызова mpiprofile viewer.

R = rand(1e3,'distributed');
mpiprofile on
R = R*R;
mpiprofile viewer

Средство просмотра имеет три типа страниц или представлений.

Средство просмотра параллельных профилей открывается сначала с помощью сводного отчета о функциях таким же образом, как и стандартный профилировщик. В этом представлении можно просмотреть информацию о профиле из любой лаборатории или из нескольких лабораторий одновременно. Сначала отображаются все функции, выполняемые в лаборатории 1. Затем можно выбрать параметры из списка, чтобы просмотреть информацию о профилировании из любой лаборатории.

В этом представлении можно просмотреть агрегатную информацию с помощью списков Выбор сравнения вручную. При выборе агрегата в этом ракурсе профилировщик накапливает и отображает указанные данные обо всех выполняемых функциях. Например,

  • max Time Aggregate перечисляет все функции, вызываемые в программе, и для каждой функции данные из лаборатории, которая потратила наибольшее время на ее выполнение.

  • min Time > 0 Aggregate перечисляет каждую вызванную в программе функцию, а для каждой функции - статистику лаборатории, которая потратила меньше всего времени на ее выполнение.

Вот несколько вещей, которые следует помнить в этой точке зрения:

  • Для повторной сортировки таблицы по другому полю просто щелкните по заголовку соответствующего столбца (например, «Общее время связи»).

  • Чтобы выбрать функцию и перейти к подробному отчету о функции, щелкните любое имя функции, которое отображается в столбце Имя функции.

  • Чтобы сравнить информацию о профилировании из разных лабораторий, используйте поля и кнопки сравнения (в верхней части каждой страницы). Информация о сравнении всегда отображается шрифтом цвета бордюра.

  • Чтобы найти в лаборатории основные данные профилирования (черный или синий текст), посмотрите на оранжевый выделенный текст в верхней части отображаемой страницы или на верхней панели инструментов.

Подробный отчет о функциях отображает информацию об отдельных строках, выполняемых в текущей функции для каждой лаборатории. Сюда входит таблица «Занятые линии», которая может использоваться для сравнения пяти первых строк кода в различных лабораториях. Этот отчет является полностью функциональным, только если профилированные файлы MATLAB доступны по пути клиента MATLAB.

Подробный отчет по функциям отличается от сводного отчета по функциям несколькими способами:

  • Отчет создается для одной функции за раз. Имя функции отображается в верхней части страницы зеленым или оранжевым цветом. Зеленое выделение указывает на то, что функция провела очень мало времени (или не провела) в общении. Оранжевое выделение указывает на то, что более 20% времени было потрачено на общение или ожидание общения.

  • Каждый параметр listbox учитывает последнюю выбранную функцию. При необходимости текущую функцию можно изменить, нажав кнопку «Главная» на верхней панели инструментов, после чего можно вернуться к сводному отчету по функциям.

  • Информация о профиле Агрегаты из нескольких лабораторий рассчитываются только для каждой функции. Поэтому при выборе параметра max Time Aggregate в окне Function Detail Report (Подробный отчет о функциях) отображается информация из одной лаборатории, которая дольше всего выполняла текущую функцию.

  • Сравнение данных профилирования доступно только в пяти верхних строках таблицы «Линии занятости» (первая таблица сверху, если нет родительской таблицы).

Вид печати отображается при каждом выборе опции печати в списке Показать фигуры (Show Figures). Графики показывают информацию о связи и времени из всех лабораторий для данной функции. Существует два типа графиков (гистограммы и изображения на работника). Параметры «Гистограммы времени графика» и «Печать всех сообщений на работника» показывают три цифры с использованием соответствующих полей связи, возвращаемых mpiprofile info команда.

  • Гистограммы времени графика показывают гистограммы для общего времени, общего времени связи и времени ожидания связи.

  • Функция «Печать всех сообщений на работника» показывает 2D цветные графики изображения для полученных данных, времени приема сообщений и времени ожидания сообщений.

  • Параметр График времени связи на работника (Plot Communication Time Per Worker) в списке Показать рисунки (Show Figures) показывает только диаграмму Время связи при получении (Receive Communication Time) и поэтому быстрее генерируется.

Печать по функции или сеансу

Для графиков существует два режима:

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

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

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

Представлен в R2007b