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