exponenta event banner

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. Если задача в связном задании настроена на захват выходных данных командного окна, информация регистрации MPI будет присутствовать в задании CommandWindowOutput собственность.

mpiSettings('MessageLoggingDestination','stdout') передает информацию регистрации MPI в стандартный вывод для процесса MATLAB. Если используется планировщик заданий MATLAB, это файл журнала службы 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