Следуйте этим инструкциям, чтобы сконфигурировать расширенные опции во время интегрирования MATLAB® Планировщик заданий с вашим кластером.
Примечание
Если это первый раз, когда вы интегрируете MATLAB Job Scheduler, смотрите следующие для наиболее распространенных опций строения: Установить и настроить MATLAB Parallel Server для MATLAB Job Scheduler и Network License Manager.
В следующих инструкциях matlabroot
относится к местоположению установленного программного обеспечения MATLAB Parallel Server™. Где вы видите этот термин, используемый в следующих инструкциях, замените путь к вашему местоположению.
Можно обновить кластеры планировщика заданий MATLAB и продолжить использовать R2016a релиз Parallel Computing Toolbox на рабочем столе MATLAB, чтобы подключиться к нему. Чтобы воспользоваться этой функцией обратной совместимости:
Установите последнюю версию MATLAB Parallel Server на своем кластере. Необходимо использовать эту версию для запуска планировщика заданий MATLAB на кластере.
Установите MATLAB Parallel Server для каждого релиза, которую вы хотите поддержать в кластере. Например, чтобы использовать R2016a и R2016b с кластером, установите как R2016a, так и R2016b релизы MATLAB Parallel Server.
Настройте планировщик заданий MATLAB с указанием местоположения этих установок. В mjs_def
конфигурационный файл, укажите местоположение каждой установки MATLAB Parallel Server в MJS_ADDITIONAL_MATLABROOTS
переменная. Вы можете найти этот файл в
для Linux (matlabroot
/ toolbox/parallel/binmjs_def.sh
) и Windows (mjs_def.bat
). Для получения дополнительной информации см. mjs.
В этом строении планировщик заданий MATLAB позволяет клиентам MATLAB из установленных релизов отправлять задания в кластер. Планировщик заданий MATLAB динамически запускает нужную версию работника MATLAB, чтобы запустить задание.
Если это первая установка MATLAB Parallel Server на кластере компьютеров с Windows, необходимо сконфигурировать эти узлы для обмена данными о заданиях.
Примечание
Если у вас нет кластера Windows или вы уже установили предыдущую версию MATLAB Parallel Server на кластере Windows, можно пропустить этот шаг.
Если вы используете Windows® брандмауэры на узлах кластера,
Войдите в систему как пользователь с правами администратора.
Выполните следующее в командном окне DOS.
matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
Эта команда добавляет MATLAB как разрешенную программу. Если вы используете другие брандмауэры, необходимо сконфигурировать их для аналогичного размещения.
Пользователю, который запускается как требуется доступ к местоположению установки MATLAB кластера. По умолчанию mjs запускается как пользователь LocalSystem
. Если ваша сеть позволяет LocalSystem
чтобы получить доступ к расположению установки, можно пропустить этот шаг. (Если вы не уверены в конфигурации сети и доступе к ней LocalSystem
, обратитесь в службу поддержки установки MathWorks.)
Примечание
Если LocalSystem
невозможно получить доступ к расположению установки, необходимо запустить mjs от имени другого пользователя.
Вы можете задать другого пользователя с помощью следующих шагов:
С любым стандартным текстовым редактором (таким как WordPad) откройте mjs_def
файл, найденный в:
matlabroot\toolbox\parallel\bin\mjs_def.bat
Найдите линию для настройки MJSUSER
Параметр и задайте значение в форме domain\username
:
set MJSUSER=mydomain\myusername
Укажите пароль пользователя путем установки MJSPASS
параметр:
set MJSPASS=password
Сохраните файл.
The mjs
сервис использует столько портов, сколько требуется, начиная с BASE_PORT
. По умолчанию BASE_PORT
- 27350.
Если вы используете машину, которая запускает в общей сложности nJ
менеджеры и nW
рабочие, mjs
сервис резервирует в общей сложности 6+2*nJ+4*nW
последовательные порты для собственного использования. Все руководители и рабочие, даже работающие на разных хостах, которые будут работать вместе, должны использовать один и тот же базовый порт. В противном случае руководители и рабочие не смогут связаться друг с другом. В сложение связь MPI происходит с портами, начинающимися с BASE_PORT+1000
и использовать 2*nW
последовательные порты.
Например, если вы используете машину с 1 менеджером заданий и 16 рабочими, то вам нужны следующие области значений портов, чтобы быть открытыми:
27350 – 27422
для услуги mjs.
28350 – 28382
для связи MPI.
Чтобы соединиться из MATLAB к кластеру с не используемым по умолчанию BASE_PORT
, необходимо добавить значение BASE_PORT
на 'Host'
свойство в профиле кластера планировщика заданий MATLAB. Вы должны сделать это в форме Hostname:BASE_PORT
, для примера myMJSHost:44001
.
Если на узлах кластера работает более старая версия MATLAB Parallel Server, следует остановить службы mjs перед запуском служб новой установки.
Откройте командное окно DOS с необходимыми привилегиями:
Если вы используете Windows 7 или Windows Vista™, необходимо запустить командное окно с правами администратора. Выберите меню Windows Пуск > (Все) Программы > Аксессуары; затем щелкните правой кнопкой мыши Командное окно и выберите Запуск от имени Администратора. Эта опция доступна только при запуске функции «Управление учетными записями пользователей» (UAC).
Если вы используете Windows XP, откройте командное окно DOS, выбрав меню Windows Start > Run, затем в поле Open введите
cmd
В командном окне перейдите к папке старой установки, содержащей скрипты управления.
cd oldmatlabroot\toolbox\parallel\bin
Остановите и удалите старую службу и удалите связанные с ней файлы, набрав следующую команду.
mjs uninstall -clean
В релизах перед R2019a сервис называется mdce. Вместо этого введите следующие команды.
cd oldmatlabroot\toolbox\distcomp\bin mdce uninstall -clean
Примечание
Использование -clean
флаг навсегда удаляет все существующие данные о задании. Убедитесь, что эти данные больше не нужны перед удалением.
Повторите инструкции этого шага на всех рабочих узлах.
Войдите в систему как root. Если вы не можете войти как root, необходимо изменить следующие параметры в
файл для указания на папку, для которой у вас есть права на запись: oldmatlabroot
/ toolbox/parallel/bin/mjs_def.shCHECKPOINTBASE
, LOGBASE
, PIDBASE
, и LOCKBASE
если применимо. В релизах перед R2019a этот файл
вместо этого.oldmatlabroot
/ toolbox/distcomp/bin/mdce_def.sh
На каждом узле кластера остановите службу mjs и удалите связанные с ней файлы, набрав команды:
cd oldmatlabroot/toolbox/parallel/bin ./mjs stop -clean
В релизах перед R2019a сервис называется mdce. Вместо этого введите следующую команду.
cd oldmatlabroot/toolbox/distcomp/bin ./mdce stop -clean
Примечание
Использование -clean
флаг навсегда удаляет все существующие данные о задании. Убедитесь, что эти данные больше не нужны перед удалением.
Перед запуском службы mjs на узлах кластера установите уровень безопасности. Инструкции см. в разделе Установка уровня безопасности. Дополнительные факторы безопасности см. в разделе Установка безопасности кластера планировщика заданий MATLAB.
Запустить MATLAB Job Scheduler можно с помощью графического интерфейса или командной строки. Инструкции по использованию графического интерфейса см. в разделе Настройка планировщика заданий MATLAB. Чтобы использовать графический интерфейс, Admin Center, необходимо запустить его на компьютере, который имеет прямое сетевое подключение ко всем узлам вашего кластера. Если вы не можете запустить Admin Center на таком компьютере, необходимо использовать интерфейс командной строки. Для получения инструкций по использованию интерфейса командной строки выполните следующие шаги.
Запуск службы mjs
Необходимо установить службу mjs на все узлы (головной узел и рабочие узлы). Начните с головного узла.
Откройте командное окно DOS с необходимыми привилегиями:
Если вы используете Windows или Windows Vista, необходимо запустить командное окно с правами администратора. Выберите меню Windows Пуск > (Все) Программы > Аксессуары; затем щелкните правой кнопкой мыши Командное окно и выберите Запуск от имени Администратора. Эта опция доступна только при запуске функции «Управление учетными записями пользователей» (UAC).
Если вы используете Windows XP, откройте командное окно DOS, выбрав меню Windows Start > Run, затем в поле Open введите:
cmd
В командном окне DOS перейдите в папку с управляющими скриптами:
cd matlabroot\toolbox\parallel\bin
Установите сервис mjs путем ввода команды:
mjs install
Запустите службу mjs, набрав команду:
mjs start
Повторите инструкции этого шага на всех рабочих узлах.
В качестве альтернативы элементы 3-5 можно установить и запустить сервис mjs на нескольких узлах удаленно с одной машины, набрав:
cd matlabroot\toolbox\parallel\bin remotemjs install -remotehost hostA,hostB,hostC . . . remotemjs start -remotehost hostA,hostB,hostC . . .
где hostA,hostB,hostC
ссылается на список имен узлов. Обратите внимание, что между именами хостов нет пространств, только запятая. Если вам нужно указать протокол, платформу (например, в смешанном окружении) или другую информацию, смотрите справку для remotemjs
путем ввода:
remotemjs -help
После установки служба mjs начинает запускаться каждый раз, когда машина перезагружается. Служба mjs продолжает запускаться до явной остановки или удаления независимо от того, выполняется ли планировщик заданий MATLAB или рабочий сеанс.
Запустите планировщик заданий MATLAB
Чтобы запустить MATLAB Job Scheduler, введите следующие команды в командном окне DOS. Вы не должны быть на машине, на которой работает планировщик заданий MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.
В командном окне DOS перейдите в папку с загрузочными скриптами:
cd matlabroot\toolbox\parallel\bin
Запустите MATLAB Job Scheduler, используя любой уникальный текст, который вы хотите для имени <MyMJS>
:
startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
Проверьте, что планировщик заданий MATLAB работает на предполагаемом узле.
nodestatus -remotehost <MATLAB Job Scheduler host name>
Примечание
Если вы выполняете startjobmanager
на хосте, на котором работает планировщик заданий MATLAB, вы не должны задавать -remotehost
флаг.
Если у вас в кластере более одного планировщика заданий MATLAB, то каждый из них должен иметь уникальное имя.
Запуск рабочих
Примечание
Прежде чем вы сможете запустить рабочий процесс на компьютере, служба mjs должна уже работать на этом компьютере. Если вы используете диспетчер сетевых лицензий, он должен работать в сети.
Для каждого узла, используемого в качестве рабочего, введите следующие команды в командном окне DOS. Вы не должны быть в машинах, где будут работать работники MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.
Перейдите в папку с загрузочными скриптами:
cd matlabroot\toolbox\parallel\bin
Запустите рабочие места на каждом узле, используя текст для <MyMJS>
который определяет имя планировщика заданий MATLAB, в котором должен быть зарегистрирован этот рабочий процесс. Введите этот текст в одну линию:
startworker -jobmanagerhost <MATLAB Job Scheduler host name> -jobmanager <MyMJS> -remotehost <worker host name> -v
Чтобы запустить несколько рабочих сеансов на том же узле, задайте каждому рабочему уникальное имя, включив в него -name
опция на startworker
Команда и запуск его для каждого работника на этом узле:
startworker ... -name <worker1 name> startworker ... -name <worker2 name>
Проверьте, что рабочие выполняются.
nodestatus -remotehost <worker host name>
Повторите элементы 2-3 для всех рабочих узлов.
Для получения дополнительной информации о mjs, MATLAB Job Scheduler и рабочих процессах, таких как завершение их работы или настройка, см. Раздел «Индивидуальная настройка кластера планировщика заданий MATLAB».
Запуск службы mjs
На каждом узле кластера запустите службу mjs, набрав команды:
cd matlabroot/toolbox/parallel/bin ./mjs start
Также (на Linux, но не Macintosh) можно запустить сервис mjs на нескольких узлах удаленно с одной машины, набрав
cd matlabroot/toolbox/parallel/bin ./remotemjs start -remotehost hostA,hostB,hostC . . .
где hostA,hostB,hostC
ссылается на список имен узлов. Обратите внимание, что между именами хостов нет пространств, только запятая. Если вам нужно указать протокол, платформу (например, в смешанном окружении) или другую информацию, смотрите справку для remotemjs
путем ввода
./remotemjs -help
Запустите планировщик заданий MATLAB
Чтобы запустить планировщик заданий MATLAB, введите следующие команды. Вы не должны быть на машине, на которой работает планировщик заданий MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.
Перейдите в папку с загрузочными скриптами:
cd matlabroot/toolbox/parallel/bin
Запустите MATLAB Job Scheduler, используя любой уникальный текст, который вы хотите для имени <MyMJS>
. Введите этот текст в одну линию.
./startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
Проверьте, что планировщик заданий MATLAB работает на предполагаемом узле:
./nodestatus -remotehost <MATLAB Job Scheduler host name>
Примечание
Если у вас в кластере более одного планировщика заданий MATLAB, то каждый из них должен иметь уникальное имя.
Запуск рабочих
Примечание
Прежде чем вы сможете запустить рабочий процесс на компьютере, служба mjs должна уже работать на этом компьютере. Если вы используете диспетчер сетевых лицензий, он должен работать в сети.
Для каждого компьютера, на котором размещен работник MATLAB, введите следующие команды. Вы не должны быть в машинах, где работают работники MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.
Перейдите в папку с загрузочными скриптами:
cd matlabroot/toolbox/parallel/bin
Запустите рабочие места на каждом узле, используя текст для <MyMJS>
который определяет имя планировщика заданий MATLAB, в котором должен быть зарегистрирован этот рабочий процесс. Введите этот текст в одну линию:
./startworker -jobmanagerhost <MATLAB Job Scheduler host name> -jobmanager <MyMJS> -remotehost <worker host name> -v
Чтобы запустить несколько рабочих сеансов на одном компьютере, присвойте каждому рабочему приложению уникальное имя с -name
опция:
./startworker ... -name <worker1> ./startworker ... -name <worker2>
Проверьте, что рабочие выполняются. Повторите эту команду для каждого рабочего узла:
./nodestatus -remotehost <worker host name>
Для получения дополнительной информации о mjs, MATLAB Job Scheduler и рабочих процессах, таких как завершение их работы или настройка, см. Раздел «Индивидуальная настройка кластера планировщика заданий MATLAB».
Хотя этот шаг не требуется, он полезен в случае сбоя системы. После настройки для этого служба mjs начинает запускаться каждый раз, когда машина перезагружается. Служба mjs продолжает запускаться до явного останова независимо от того, работает ли планировщик заданий MATLAB или рабочий сеанс.
Для выполнения этого шага необходимо иметь права root.
Выберите свою платформу:
На каждом узле кластера зарегистрируйте службу mjs как известную службу и сконфигурируйте ее для автоматического запуска во время загрузки системы путем выполнения следующих шагов:
Создайте следующую ссылку, если она еще не существует:
ln -s matlabroot/toolbox/parallel/bin/mjs /etc/mjs
Создайте следующую ссылку на файл загрузочного скрипта:
ln -s matlabroot/toolbox/parallel/bin/mjs /etc/init.d/mjs
Установите права доступа к файлам скриптов загрузки:
chmod 555 /etc/init.d/mjs
Найдите свой уровень запуска по умолчанию. Если у вас есть машина SysV linux, можно определить уровень запуска по умолчанию, загрузив машину и немедленно выполнив $runlevel
команда. Второй выход номера является уровнем запуска по умолчанию в вашей системе. Если ваша машина Linux не поддерживает SysV, проверьте /etc/inittab
для уровня выполнения по умолчанию.
Когда вы определите уровень запуска, создайте ссылку в rc
папка, связанная с этим уровнем запуска. Для примера, если уровень запуска 5
выполните один из следующих наборов команд для конкретной платформы.
Платформы Debian и Fedora:
cd /etc/rc5.d; ln -s ../init.d/mjs S99MJS
Платформа SUSE:
cd /etc/init.d/rc5.d; ln -s ../mjs S99MJS
Платформа Red Hat (non-Fedora):
cd /etc/rc.d/rc5.d; ln -s ../../init.d/mjs S99MJS
На каждом узле кластера зарегистрируйте службу mjs как известную службу с помощью launchd и сконфигурируйте ее для автоматического запуска во время загрузки системы следующими шагами:
Перейдите в папку тулбокса и остановите работающую службу mjs:
cd matlabroot/toolbox/parallel/bin sudo ./mjs stop
Создайте следующую ссылку, если она еще не существует:
sudo mkdir -p /usr/local/sbin/ sudo ln -s matlabroot/toolbox/parallel/bin/mjs /usr/local/sbin/mjs
Скопируйте .plist launchd
файл для mjs, чтобы /Library/LaunchDaemons
:
sudo cp ./util/com.mathworks.mjs.plist /Library/LaunchDaemons
Откройте скопированное .plist
файл в текстовом редакторе. Убедитесь, что ведущая часть StandardOutPath
и StandardErrorPath
поля соответствуют LOGBASE
значение, определенное в mjs_def.sh
файл. Для примера, если LOGBASE
является /var/log/mjs
, тогда вы должны определить StandardOutPath
и StandardErrorPath
следующим образом:
<key>StandardOutPath</key> <string>/var/log/mjs/launchctl.stdout</string> <key>StandardErrorPath</key> <string>/var/log/mjs/launchctl.stderr</string>
Перезапустите машину и заметьте, что mjs работает с помощью nodestatus
:
cd matlabroot/toolbox/parallel/bin ./nodestatus
Чтобы убедиться, что продукты MATLAB Parallel Server установлены и настроены правильно, создайте профиль кластера и проверьте его. Инструкции см. в разделе Подключение клиента MATLAB к кластеру MATLAB Parallel Server. Можно задать количество работников, которые будут использоваться при проверке профиля, чтобы избежать занятия всего кластера. Если ваша валидация не проходит, обратитесь в службу поддержки MathWorks Install или смотрите Поиск и устранение распространенных проблем.
После создания профиля кластера можно сделать любые изменения, подходящие для ваших приложений, такие как NumWorkersRange
, AttachedFiles
, или AdditionalPaths
. Чтобы сохранить профиль для других пользователей, в Диспетчере профилей кластеров выберите профиль и нажмите кнопку Export, а затем сохраните профиль в файл в удобном месте. Позже, при запуске Диспетчера профилей кластеров, другие пользователи могут импортировать ваш профиль, нажав Import. Дополнительные сведения о профилях кластеров см. в разделах Обнаружение кластеров и Использование профилей кластеров (Parallel Computing Toolbox).