Этот пример показывает, как использовать параллельный профилировщик. Это предназначается, чтобы быть руководством по быстрому началу работы к использованию параллельного графического интерфейса пользователя (GUI) профилировщика и его основных команд. Ссылки предоставляются другим параллельным примерам профилировщика. Запустите с этого примера, если вы не уже знакомы с mpiprofile
.
Предпосылки:
Интерактивный Параллельный Режим в Parallel Computing Toolbox™ (См. pmode
в руководстве пользователя.)
Сконфигурированный кластер, если вы хотите использовать больше лабораторий, чем позволенный под 'локальным' кластерным типом
Знакомство с типичным профилировщиком (См. документацию для profile
.)
У вас должно быть, по крайней мере, несколько лабораторий при попытке параллельного профилировщика и следующих примеров. Вам нужны по крайней мере три - четыре лаборатории, чтобы видеть различие между хорошим и плохим кодом параллели в качестве примера. Также предпочтительно, если все лаборатории имеют ту же скорость и возможность.
В этом примере, который действует как пример на основах параллельного профилировщика, мы принимаем, что вы знакомы с основными характеристиками стандартной команды profile
. Если вы плохо знакомы с MATLAB®, ознакомляете себя с примерами в справке profile
прежде, чем попробовать параллельную версию (mpiprofile
) в этом примере.
Код MATLAB, связанный с mpiprofile
, не должен быть выполнен в регулярном сеансе работы с MATLAB, а скорее в подсказке P>>
в Параллельном Командном окне. См. Пользовательское Руководство Parallel Computing Toolbox для получения дополнительной информации о pmode
.
Прежде, чем профилировать ваш параллельный код, включите сбор данных параллельного профилировщика с помощью mpiprofile
. Подобно типичному профилировщику mpiprofile on
может быть использованием к активированному параллельный профилировщик.
P>> mpiprofile on;
Профильный сеанс обычно запускается с mpiprofile on
и заканчивается mpiprofile viewer
или mpiprofile off
. Когда мы упоминаем профильный сеанс, мы обращаемся к данным, собранным между запуском и концом параллельного профилировщика.
Текущий статус параллельного профилировщика может быть подтвержден путем выполнения:
P>> mpiprofile status;
Можно затем выполнить любую функцию, как вы делаете со стандартной командой profile
. Например, можно просмотреть сырые данные профильная информация с помощью mpiprofile info
.
P>> A = rand(1024, codistributor()); P>> B = A*A; P>> mpiprofile info;
Если вы завершили выполнение вашего кода с профилировщиком, можно просмотреть результаты с помощью графического интерфейса путем ввода:
P>> mpiprofile viewer; % This also turns off the profiler.
1 Sending pmode lab2client to the MATLAB client for asynchronous evaluation.
Каждый из работников MATLAB, запускающихся в вашем кластере, собирает профильные данные и автоматически передает его клиенту (когда в pmode
). Если вы хотите использовать все функции графического браузера, профилируемые файлы MATLAB должны быть доступными на клиенте.
Если средство просмотра запускает три типа страниц, или представления доступны.
Параллельное средство просмотра профиля, открывается Функциональным Сводным отчетом сначала, таким же образом как типичный профилировщик. В этом представлении вы видите информацию о профиле из любой одной лаборатории или из нескольких лабораторий одновременно. Это первоначально показывает все функции, выполняемые на лаборатории 1. Можно затем принять решение с помощью опций поля списка видеть профильную информацию из любой лаборатории.
В этом представлении вы видите, что Совокупная информация использует поля списков Manual Comparison Selection. Когда вы выбираете Aggregate в этом представлении, профилировщик накапливает и отображает заданные данные обо всех выполняемых функциях. Например,
макс. Агрегат Времени перечисляет каждую функцию, вызванную в программе, и для каждой функции, данных лаборатории, которая провела большую часть времени, выполняя его.
Время min> 0 Агрегатов перечисляют каждую функцию, вызванную в программе, и для каждой функции, статистики из лаборатории, которая провела наименьшее количество времени, выполняя его.
Вот несколько вещей иметь в виду в этом представлении:
Чтобы обратиться таблица различным полем просто кликают по связанному заголовку столбцов (например, Общее Время Коммуникации).
Чтобы выбрать функцию и перейти к Функциональному Детализированному отчету, кликните по любому имени функции, которое появляется в столбце Имени функции.
Чтобы сравнить профильную информацию из различных лабораторий, используйте поля списков Comparison и кнопки (найденный в верхней части каждой страницы). Информация о сравнении всегда отображается в темно-бордовом цветном шрифте. Другие примеры (см. ссылки во главе этого примера) показывают, как использовать сравнения, чтобы точно определить проблемы.
Чтобы найти, из которого происходит лаборатория основные профильные данные (черный или синий текст), посмотрите на оранжевый выделенный текст наверху отображенной страницы или на главной панели инструментов.
Функциональный Детализированный отчет отображает информацию об отдельных строках, выполняемых в текущей функции для каждой лаборатории. Это включает таблицу Busy Lines, которая может использоваться, чтобы сравнить лучшие пять строк кода на различных лабораториях. Этот отчет только полностью функционален, если профилируемые файлы MATLAB доступны на клиентском пути MATLAB.
Функциональный Детализированный отчет отличается от Функционального Сводного отчета несколькими способами:
Отчет сгенерирован для одной функции за один раз. Имя функции отображено в верхней части страницы в зеленом или оранжевом цвете. Зеленое выделение указывает, что функция потратила очень мало (или не) время в коммуникации. Оранжевое выделение указывает, что больше чем 20% времени были потрачены в коммуникации или ожидающий коммуникации.
Каждая опция поля списка учитывает последнюю функцию, по которой вы кликнули. Текущая функция может быть изменена, если потребуется, путем нажатия кнопки "Домой" на главной панели инструментов, которая также забирает вас к Функциональному Сводному отчету.
Информация профиля Агрегируется из нескольких лабораторий, вычисляются только на на функциональное основание. Поэтому в Функциональном Детализированном отчете, выбирая макс. Агрегат Времени отображает информацию из одной лаборатории, которая взяла самое долгое выполнение текущей функции.
Сравнения профильной информации только доступны в лучших пяти строках, показанных в таблице Busy Lines (первая таблица от верхней части, если нет родительская таблица).
Представление Графика показывают каждый раз, когда вы кликаете по опции графика в поле списка Show Figures. Графики показывают информацию о коммуникации и синхронизации из всех лабораторий для заданной функции. Существует два типа графиков (Гистограммы и Изображения PerLab). Гистограммы Времени Графика и График Все Способы коммуникации PerLab показывают трем фигурам, использующим соответствующие коммуникационные поля, возвращенные командой mpiprofile info
.
Гистограммы Времени графика показывают гистограммы в течение Общего Времени, Общего Коммуникационного Времени и Коммуникационного Времени ожидания.
График, который Вся Коммуникация PerLab показывает 2D цвету, закодировал графики изображений для Полученных Данных, Получите Коммуникационное Время и Коммуникационное Время ожидания.
Опция CommTimePerLab Графика в поле списка Show Figures показывает только Получить Коммуникационную Временную диаграмму и поэтому быстрее, чтобы сгенерировать.
Графический вывод на функцию или на сеанс
Существует два режима для графиков:
Полные графики сеанса: Если вы находитесь в Функциональном Сводном отчете, и вы не выбрали функции, графики сгенерированы для всего выполненного кода (с профилировщиком на).
На графики функций: Если вы будете в Функциональном Детализированном отчете, то выбрав функцию, кликая по любому из доступных графиков (в поле списка, показанном ниже), возьмет вас к функционально-специализированному Представлению Графика.
Можно всегда говорить, какой режим графика вы используете путем рассмотрения заголовков каждой фигуры. Заголовки показывают имя текущей функции (или всех функций при показе данных для целого сеанса). Заголовки также включают имя профильного отображаемого поля (например, Коммуникационное Время, Общее Время). Если вы хотите видеть данные для целого профильного сеанса, выбрав определенную функцию, нажмите, Home, чтобы вернуться к Функциональному Сводному отчету затем выбирают ваш желаемый график (использующий поле списка, показанное ниже).
Для получения дополнительной информации см. Руководство пользователя Parallel Computing Toolbox. Для практического изучения подход пробуют ссылки на примеры, перечисленные под "Связанными Примерами".