Сконфигурируйте опции для коммуникации 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'
в pmode
сеансы или spmd
операторы. Если настройки были изменены в pmode
сеанс или spmd
оператор, установка остается в действительности до любого pmode
концы сеанса или параллельный пул закрываются.
Если вы используете большое количество рабочих, вы можете испытать увеличение производительности путем отключения обнаружения мертвой блокировки.
Если некоторые рабочие не вызывают labSend
или labReceive
в течение многих длительных периодов времен обнаружение мертвой блокировки может вызвать ошибки связи. Если вы сталкиваетесь с ошибками, попытайтесь отключить обнаружение мертвой блокировки.
mpiSettings('MessageLogging','on')
включает логгирование сообщения MPI. Значением по умолчанию является 'off'
. Местом назначения по умолчанию является Командное окно MATLAB®.
mpiSettings('MessageLoggingDestination','CommandWindow')
отправляет MPI логгирование информации к Окну Команды MATLAB. Если задача в связывающемся задании поставится, чтобы получить окно Command Window, 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
.