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. Можно затем принять решение с помощью опций поля списка видеть профильную информацию из любой лаборатории.

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

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

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

Вот несколько вещей иметь в виду в этом представлении:

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

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

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

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

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

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

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

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

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

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

Представление Графика показывают каждый раз, когда вы кликаете по опции графика в поле списка 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 строит диаграмму, и поэтому быстрее, чтобы сгенерировать.

Графический вывод на функцию или на сеанс

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

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

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

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

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