Сконфигурируйте опции для коммуникации 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, это - 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
.