mpiSettings

Сконфигурируйте опции для связи MPI

Синтаксис

mpiSettings('DeadlockDetection','on')
mpiSettings('MessageLogging','on')
mpiSettings('MessageLoggingDestination','CommandWindow')
mpiSettings('MessageLoggingDestination','stdout')
mpiSettings('MessageLoggingDestination','File','filename')

Описание

mpiSettings('DeadlockDetection','on') включает обнаружение взаимоблокировки во время вызовов labSend и labReceive. Если обнаружена взаимоблокировка, вызов функции labReceive может вызвать ошибку. Хотя нет необходимости включать обнаружение тупика у всех работников, это самая полезная опция. Значение по умолчанию 'off' для связи с рабочими местами и 'on' внутри spmd операторы. После изменения настройки в spmd оператор, установка остается в эффекте до тех пор, пока параллельный пул не закроется.

Если вы используете большое количество рабочих мест, вы можете столкнуться с увеличением эффективности, отключив обнаружение взаимоблокировок.

Если некоторые работники не звонят labSend или labReceive в течение длительных периодов времени обнаружение взаимоблокировки может вызвать ошибки связи. Если вы столкнулись с ошибками, попробуйте отключить обнаружение взаимоблокировки.

mpiSettings('MessageLogging','on') включает логгирование сообщений MPI. Значение по умолчанию является 'off'. Адресатом по умолчанию является MATLAB® Командное окно.

mpiSettings('MessageLoggingDestination','CommandWindow') отправляет данные регистрации MPI в Командное окно MATLAB. Если задача в задании связи настроена на захват окна Command Window, информация регистрации MPI будет присутствовать в CommandWindowOutput задачи свойство.

mpiSettings('MessageLoggingDestination','stdout') отправляет информацию регистрации MPI в стандартный выход для процесса MATLAB. Если вы используете MATLAB Job Scheduler, это файл журнала службы mjs.

mpiSettings('MessageLoggingDestination','File','filename') отправляет данные регистрации MPI в указанный файл.

Примеры

Установите обнаружение взаимоблокировки для задания связи внутри jobStartup.m файл для этого задания:

    % Inside jobStartup.m for the communicating job
    mpiSettings('DeadlockDetection','on');
    myLogFname = sprintf('%s_%d.log',tempname,labindex);
    mpiSettings('MessageLoggingDestination','File',myLogFname);
    mpiSettings('MessageLogging','on');

Отключите обнаружение взаимоблокировки для всех последующих spmd операторы, которые используют тот же параллельный пул:

spmd;mpiSettings('DeadlockDetection','off');end

Совет

Установка MessageLoggingDestination не включает автоматически логгирование сообщений. Для активизации логгирования сообщений требуется отдельный вызов.

mpiSettings должен вызываться не клиент, а рабочий. То есть его следует вызывать внутри функции задачи, внутри jobStartup.m, или в пределах taskStartup.m.

Представлено до R2006a