Профилируйте параллельную передачу и времена выполнения
mpiprofile
mpiprofile on <options>
mpiprofile off
mpiprofile resume
mpiprofile clear
mpiprofile status
mpiprofile reset
mpiprofile info
mpiprofile viewer
mpiprofile('viewer',<profinfoarray>)
mpiprofile
включает или отключает параллельный сбор данных профилировщика на рабочем MATLAB®, запускающем связывающееся задание. mpiprofile
агрегировал статистику по коммуникационным временам и времени выполнения. Статистические данные собраны способом, подобным выполнению команды profile
на каждом работнике MATLAB. По умолчанию параллельные профильные расширения включают поля массивов, которые собирают информацию относительно связи с каждым из других рабочих. Эта команда в целом должна быть выполнена в pmode или как часть задачи в связывающемся задании.
mpiprofile on <options>
запускает параллельный профилировщик и очищает ранее зарегистрированную статистику профиля.
mpiprofile
выбирает следующие варианты.
Опция | Описание |
---|---|
| Эта опция задает набор функций, для которых собраны профильные статистические данные. |
| Эта опция задает деталь, в которой хранится информация о коммуникации.
Для получения информации о структуре возвращенных данных смотрите |
|
Никакие другие опции |
mpiprofile off
останавливает параллельный профилировщик. Чтобы сбросить состояние профилировщика и отключить коммуникационную информацию сбора, необходимо также вызвать mpiprofile reset
.
mpiprofile resume
перезапускает профилировщик, не очищая ранее зарегистрированную функциональную статистику. Это работает только в pmode или на том же сеансе работника MATLAB.
mpiprofile clear
очищает информацию о профиле.
mpiprofile status
возвращает допустимое состояние, когда оно работает на рабочем.
mpiprofile reset
выключает параллельный профилировщик и сбрасывает сбор данных назад типичному профилировщику. Если вы не вызовете reset
, последующие команды профиля соберут информацию MPI.
mpiprofile info
возвращает профильную структуру данных с дополнительными полями к тому, обеспеченному стандартным profile info
в записи FunctionTable
. Все эти поля зарегистрированы на на функцию и на строку основании, за исключением полей *PerLab
.
Поле | Описание |
---|---|
BytesSent | Записывает количество отправленных данных |
BytesReceived | Записывает количество полученных данных |
TimeWasted | Коммуникационное время ожидания записей |
CommTime | Записывает коммуникационное время |
CommTimePerLab | Вектор коммуникации получает время для каждой лаборатории |
TimeWastedPerLab | Вектор коммуникационного времени ожидания каждой лаборатории |
BytesReceivedPerLab | Вектор данных получен от каждой лаборатории |
Три поля *PerLab
собраны только на основе на функцию и могут быть выключены путем ввода следующей команды в pmode:
mpiprofile on -messagedetail simplified
mpiprofile viewer
используется в pmode после под управлением пользовательского кода с mpiprofile on
. Вызов средства просмотра останавливает профилировщик и открывает графический браузер профиля с параллельными опциями. Вывод является отчетом HTML, отображенным в окне профилировщика. Список файлов в нижней части функциональной страницы профиля показывает несколько столбцов слева от каждой строки кода. На итоговой странице:
Столбец 1 указывает на количество вызовов той строки.
Столбец 2 указывает общее время, проведенное на строке в секундах.
Столбцы 3-6 содержат информацию о коммуникации, характерную для параллельного профилировщика
mpiprofile('viewer',<profinfoarray>)
в функциональной форме может использоваться от клиента. <profinfoarray>
структуры должен быть переданным в в качестве второго аргумента, который является массивом структур mpiprofile info
. Смотрите pInfoVector
в разделе Examples ниже.
mpiprofile
не принимает опции -timer clock
, потому что коммуникационные часы таймера должны быть действительными.
Для получения дополнительной информации и примеры при использовании параллельного профилировщика, см. Профильный Параллельный Код.
В pmode включите параллельный профилировщик, запустите свою функцию параллельно и вызовите средство просмотра:
mpiprofile on; % call your function; mpiprofile viewer;
Если вы хотите получить информацию о профилировщике из связывающегося задания за пределами pmode (т.е. в клиенте MATLAB), необходимо возвратить выходные аргументы mpiprofile info
при помощи функциональной формы команды. Задайте свой функциональный foo()
и сделайте его функцией задачи в связывающемся задании:
function [pInfo,yourResults] = foo mpiprofile on initData = (rand(100, codistributor()) ... * rand(100,codistributor())); pInfo = mpiprofile('info'); yourResults = gather(initData,1)
После выполнений задания и foo()
оценен на вашем кластере, получите данные по клиенту:
A = fetchOutputs(yourJob);
Затем просмотрите параллельную информацию о профиле:
pInfoVector = [A{:,1}];
mpiprofile('viewer',pInfoVector);
mpiSettings
| pmode
| profile