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

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

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

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

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

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

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

  • Чтобы повторно отсортировать таблицу по другому полю, просто щелкните связанный заголовок столбца (например, Total Comm Time).

  • Чтобы выбрать функцию и перейти к отчету Детализированный Отчет, щелкните любое имя функции, которое появляется в Function Name столбце.

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

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

В Function Detail Report отображается информация об отдельных линиях, выполненных в текущей функции для каждой лаборатории. Это включает таблицу Busy Lines, которая может использоваться для сравнения пяти лучших строк кода в различных лабораториях. Этот отчет функционирует только в том случае, если профилированные файлы MATLAB доступны в пути MATLAB клиента.

Function Детализированного отчета отличается от Function Сводных данных Report несколькими способами:

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

  • Каждая опция listbox учитывает последнюю функцию, которую вы кликнули. Текущую функцию можно изменить, если это необходимо, нажав кнопку Home на верхней панели инструментов, которая также возвращает вас к отчету по Сводным данным функций.

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

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

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

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

  • Plot All Per Worker Communication показывает 2D цветного кода изображения для принимаемых данных, времени приема связи и времени ожидания связи.

  • Опция Plot Communication Time Per Worker в списке Show Figures показывает только Receive Communication Time график и поэтому быстрее генерировать.

Графическое изображение по функциям или сеансам

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

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

  • В соответствии с графиками функций: Если вы находитесь в Детализированном отчете Function после выбора функции, то нажатие на любой из доступных графиков (в списке, показанном ниже) приведет вас к конкретному Plot View функции.

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

Введенный в R2007b
Для просмотра документации необходимо авторизоваться на сайте