Настройте дополнительные опции для интегрирования с планировщиком заданий MATLAB

Следуйте этим инструкциям, чтобы сконфигурировать расширенные опции во время интегрирования MATLAB® Планировщик заданий с вашим кластером.

Примечание

Если это первый раз, когда вы интегрируете MATLAB Job Scheduler, смотрите следующие для наиболее распространенных опций строения: Установить и настроить MATLAB Parallel Server для MATLAB Job Scheduler и Network License Manager.

В следующих инструкциях matlabroot относится к местоположению установленного программного обеспечения MATLAB Parallel Server™. Где вы видите этот термин, используемый в следующих инструкциях, замените путь к вашему местоположению.

Запуск нескольких версий MATLAB Parallel Server

Можно обновить кластеры планировщика заданий MATLAB и продолжить использовать R2016a релиз Parallel Computing Toolbox на рабочем столе MATLAB, чтобы подключиться к нему. Чтобы воспользоваться этой функцией обратной совместимости:

  1. Установите последнюю версию MATLAB Parallel Server на своем кластере. Необходимо использовать эту версию для запуска планировщика заданий MATLAB на кластере.

  2. Установите MATLAB Parallel Server для каждого релиза, которую вы хотите поддержать в кластере. Например, чтобы использовать R2016a и R2016b с кластером, установите как R2016a, так и R2016b релизы MATLAB Parallel Server.

  3. Настройте планировщик заданий MATLAB с указанием местоположения этих установок. В mjs_def конфигурационный файл, укажите местоположение каждой установки MATLAB Parallel Server в MJS_ADDITIONAL_MATLABROOTS переменная. Вы можете найти этот файл в matlabroot/ toolbox/parallel/bin для Linux (mjs_def.sh) и Windows (mjs_def.bat). Для получения дополнительной информации см. mjs.

В этом строении планировщик заданий MATLAB позволяет клиентам MATLAB из установленных релизов отправлять задания в кластер. Планировщик заданий MATLAB динамически запускает нужную версию работника MATLAB, чтобы запустить задание.

Настройка узлов кластеров Windows

Если это первая установка MATLAB Parallel Server на кластере компьютеров с Windows, необходимо сконфигурировать эти узлы для обмена данными о заданиях.

Примечание

Если у вас нет кластера Windows или вы уже установили предыдущую версию MATLAB Parallel Server на кластере Windows, можно пропустить этот шаг.

Настройка брандмауэров Windows на клиенте

Если вы используете Windows® брандмауэры на узлах кластера,

  1. Войдите в систему как пользователь с правами администратора.

  2. Выполните следующее в командном окне DOS.

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
    

    Эта команда добавляет MATLAB как разрешенную программу. Если вы используете другие брандмауэры, необходимо сконфигурировать их для аналогичного размещения.

Сконфигурируйте пользовательский доступ Windows для mjs

Пользователю, который запускается как требуется доступ к местоположению установки MATLAB кластера. По умолчанию mjs запускается как пользователь LocalSystem. Если ваша сеть позволяет LocalSystem чтобы получить доступ к расположению установки, можно пропустить этот шаг. (Если вы не уверены в конфигурации сети и доступе к ней LocalSystem, обратитесь в службу поддержки установки MathWorks.)

Примечание

Если LocalSystem невозможно получить доступ к расположению установки, необходимо запустить mjs от имени другого пользователя.

Вы можете задать другого пользователя с помощью следующих шагов:

  1. С любым стандартным текстовым редактором (таким как WordPad) откройте mjs_def файл, найденный в:

    matlabroot\toolbox\parallel\bin\mjs_def.bat
  2. Найдите линию для настройки MJSUSER Параметр и задайте значение в форме domain\username:

    set MJSUSER=mydomain\myusername
  3. Укажите пароль пользователя путем установки MJSPASS параметр:

    set MJSPASS=password
  4. Сохраните файл.

Откройте необходимые порты на сервере

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.

Stop mjs Услуги старой установки

Если на узлах кластера работает более старая версия MATLAB Parallel Server, следует остановить службы mjs перед запуском служб новой установки.

Остановить mjs в Windows

  1. Откройте командное окно DOS с необходимыми привилегиями:

    1. Если вы используете Windows 7 или Windows Vista™, необходимо запустить командное окно с правами администратора. Выберите меню Windows Пуск > (Все) Программы > Аксессуары; затем щелкните правой кнопкой мыши Командное окно и выберите Запуск от имени Администратора. Эта опция доступна только при запуске функции «Управление учетными записями пользователей» (UAC).

    2. Если вы используете Windows XP, откройте командное окно DOS, выбрав меню Windows Start > Run, затем в поле Open введите

      cmd
      
  2. В командном окне перейдите к папке старой установки, содержащей скрипты управления.

    cd oldmatlabroot\toolbox\parallel\bin
    
  3. Остановите и удалите старую службу и удалите связанные с ней файлы, набрав следующую команду.

    mjs uninstall -clean
    

    В релизах перед R2019a сервис называется mdce. Вместо этого введите следующие команды.

    cd oldmatlabroot\toolbox\distcomp\bin
    mdce uninstall -clean
    

    Примечание

    Использование -clean флаг навсегда удаляет все существующие данные о задании. Убедитесь, что эти данные больше не нужны перед удалением.

  4. Повторите инструкции этого шага на всех рабочих узлах.

Остановить mjs в UNIX

  1. Войдите в систему как root. Если вы не можете войти как root, необходимо изменить следующие параметры в oldmatlabroot/ toolbox/parallel/bin/mjs_def.sh файл для указания на папку, для которой у вас есть права на запись: CHECKPOINTBASE, LOGBASE, PIDBASE, и LOCKBASE если применимо. В релизах перед R2019a этот файл oldmatlabroot/ toolbox/distcomp/bin/mdce_def.sh вместо этого.

  2. На каждом узле кластера остановите службу mjs и удалите связанные с ней файлы, набрав команды:

    cd oldmatlabroot/toolbox/parallel/bin
    ./mjs stop -clean

    В релизах перед R2019a сервис называется mdce. Вместо этого введите следующую команду.

    cd oldmatlabroot/toolbox/distcomp/bin
    ./mdce stop -clean

    Примечание

    Использование -clean флаг навсегда удаляет все существующие данные о задании. Убедитесь, что эти данные больше не нужны перед удалением.

Установите уровень безопасности планировщика заданий MATLAB

Перед запуском службы mjs на узлах кластера установите уровень безопасности. Инструкции см. в разделе Установка уровня безопасности. Дополнительные факторы безопасности см. в разделе Установка безопасности кластера планировщика заданий MATLAB.

Запустите службу mjs Service, MATLAB Job Scheduler и Workers (командная строка)

Запустить MATLAB Job Scheduler можно с помощью графического интерфейса или командной строки. Инструкции по использованию графического интерфейса см. в разделе Настройка планировщика заданий MATLAB. Чтобы использовать графический интерфейс, Admin Center, необходимо запустить его на компьютере, который имеет прямое сетевое подключение ко всем узлам вашего кластера. Если вы не можете запустить Admin Center на таком компьютере, необходимо использовать интерфейс командной строки. Для получения инструкций по использованию интерфейса командной строки выполните следующие шаги.

Используйте Интерфейс командной строки (Windows)

  1. Запуск службы mjs

    Необходимо установить службу mjs на все узлы (головной узел и рабочие узлы). Начните с головного узла.

    1. Откройте командное окно DOS с необходимыми привилегиями:

      1. Если вы используете Windows или Windows Vista, необходимо запустить командное окно с правами администратора. Выберите меню Windows Пуск > (Все) Программы > Аксессуары; затем щелкните правой кнопкой мыши Командное окно и выберите Запуск от имени Администратора. Эта опция доступна только при запуске функции «Управление учетными записями пользователей» (UAC).

      2. Если вы используете Windows XP, откройте командное окно DOS, выбрав меню Windows Start > Run, затем в поле Open введите:

        cmd
        
    2. В командном окне DOS перейдите в папку с управляющими скриптами:

      cd matlabroot\toolbox\parallel\bin
      
    3. Установите сервис mjs путем ввода команды:

      mjs install
      
    4. Запустите службу mjs, набрав команду:

      mjs start
      
    5. Повторите инструкции этого шага на всех рабочих узлах.

    В качестве альтернативы элементы 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 или рабочий сеанс.

  2. Запустите планировщик заданий MATLAB

    Чтобы запустить MATLAB Job Scheduler, введите следующие команды в командном окне DOS. Вы не должны быть на машине, на которой работает планировщик заданий MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.

    1. В командном окне DOS перейдите в папку с загрузочными скриптами:

      cd matlabroot\toolbox\parallel\bin
      
    2. Запустите MATLAB Job Scheduler, используя любой уникальный текст, который вы хотите для имени <MyMJS>:

      startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
    3. Проверьте, что планировщик заданий MATLAB работает на предполагаемом узле.

      nodestatus -remotehost <MATLAB Job Scheduler host name>
      

      Примечание

      Если вы выполняете startjobmanager на хосте, на котором работает планировщик заданий MATLAB, вы не должны задавать -remotehost флаг.

      Если у вас в кластере более одного планировщика заданий MATLAB, то каждый из них должен иметь уникальное имя.

  3. Запуск рабочих

    Примечание

    Прежде чем вы сможете запустить рабочий процесс на компьютере, служба mjs должна уже работать на этом компьютере. Если вы используете диспетчер сетевых лицензий, он должен работать в сети.

    Для каждого узла, используемого в качестве рабочего, введите следующие команды в командном окне DOS. Вы не должны быть в машинах, где будут работать работники MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.

    1. Перейдите в папку с загрузочными скриптами:

      cd matlabroot\toolbox\parallel\bin
      
    2. Запустите рабочие места на каждом узле, используя текст для <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>
      
    3. Проверьте, что рабочие выполняются.

      nodestatus -remotehost <worker host name>
      
    4. Повторите элементы 2-3 для всех рабочих узлов.

    Для получения дополнительной информации о mjs, MATLAB Job Scheduler и рабочих процессах, таких как завершение их работы или настройка, см. Раздел «Индивидуальная настройка кластера планировщика заданий MATLAB».

Используйте Интерфейс командной строки (UNIX)

  1. Запуск службы 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
  2. Запустите планировщик заданий MATLAB

    Чтобы запустить планировщик заданий MATLAB, введите следующие команды. Вы не должны быть на машине, на которой работает планировщик заданий MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.

    1. Перейдите в папку с загрузочными скриптами:

      cd matlabroot/toolbox/parallel/bin
      
    2. Запустите MATLAB Job Scheduler, используя любой уникальный текст, который вы хотите для имени <MyMJS>. Введите этот текст в одну линию.

      ./startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
      
    3. Проверьте, что планировщик заданий MATLAB работает на предполагаемом узле:

      ./nodestatus -remotehost <MATLAB Job Scheduler host name>
      

      Примечание

      Если у вас в кластере более одного планировщика заданий MATLAB, то каждый из них должен иметь уникальное имя.

  3. Запуск рабочих

    Примечание

    Прежде чем вы сможете запустить рабочий процесс на компьютере, служба mjs должна уже работать на этом компьютере. Если вы используете диспетчер сетевых лицензий, он должен работать в сети.

    Для каждого компьютера, на котором размещен работник MATLAB, введите следующие команды. Вы не должны быть в машинах, где работают работники MATLAB, пока у вас есть доступ к установке MATLAB Parallel Server.

    1. Перейдите в папку с загрузочными скриптами:

      cd matlabroot/toolbox/parallel/bin
      
    2. Запустите рабочие места на каждом узле, используя текст для <MyMJS> который определяет имя планировщика заданий MATLAB, в котором должен быть зарегистрирован этот рабочий процесс. Введите этот текст в одну линию:

      ./startworker -jobmanagerhost <MATLAB Job Scheduler host name>
         -jobmanager <MyMJS> -remotehost <worker host name> -v
      

      Чтобы запустить несколько рабочих сеансов на одном компьютере, присвойте каждому рабочему приложению уникальное имя с -name опция:

      ./startworker ... -name <worker1>
      ./startworker ... -name <worker2>
      
    3. Проверьте, что рабочие выполняются. Повторите эту команду для каждого рабочего узла:

      ./nodestatus -remotehost <worker host name>
      

    Для получения дополнительной информации о mjs, MATLAB Job Scheduler и рабочих процессах, таких как завершение их работы или настройка, см. Раздел «Индивидуальная настройка кластера планировщика заданий MATLAB».

Установите службу mjs для автоматического запуска во время загрузки (UNIX)

Хотя этот шаг не требуется, он полезен в случае сбоя системы. После настройки для этого служба mjs начинает запускаться каждый раз, когда машина перезагружается. Служба mjs продолжает запускаться до явного останова независимо от того, работает ли планировщик заданий MATLAB или рабочий сеанс.

Для выполнения этого шага необходимо иметь права root.

Выберите свою платформу:

Платформы Debian, Fedora, SUSE и Red Hat (не-Fedora)

На каждом узле кластера зарегистрируйте службу mjs как известную службу и сконфигурируйте ее для автоматического запуска во время загрузки системы путем выполнения следующих шагов:

  1. Создайте следующую ссылку, если она еще не существует:

    ln -s matlabroot/toolbox/parallel/bin/mjs /etc/mjs
    
  2. Создайте следующую ссылку на файл загрузочного скрипта:

    ln -s matlabroot/toolbox/parallel/bin/mjs /etc/init.d/mjs
    
  3. Установите права доступа к файлам скриптов загрузки:

    chmod 555 /etc/init.d/mjs
    
  4. Найдите свой уровень запуска по умолчанию. Если у вас есть машина SysV linux, можно определить уровень запуска по умолчанию, загрузив машину и немедленно выполнив $runlevel команда. Второй выход номера является уровнем запуска по умолчанию в вашей системе. Если ваша машина Linux не поддерживает SysV, проверьте /etc/inittab для уровня выполнения по умолчанию.

  5. Когда вы определите уровень запуска, создайте ссылку в 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
      

Платформа Macintosh

На каждом узле кластера зарегистрируйте службу mjs как известную службу с помощью launchd и сконфигурируйте ее для автоматического запуска во время загрузки системы следующими шагами:

  1. Перейдите в папку тулбокса и остановите работающую службу mjs:

    cd matlabroot/toolbox/parallel/bin
    sudo ./mjs stop
    
  2. Создайте следующую ссылку, если она еще не существует:

    sudo mkdir -p /usr/local/sbin/
    sudo ln -s matlabroot/toolbox/parallel/bin/mjs /usr/local/sbin/mjs
    
  3. Скопируйте .plist launchd файл для mjs, чтобы /Library/LaunchDaemons:

    sudo cp ./util/com.mathworks.mjs.plist /Library/LaunchDaemons
    
  4. Откройте скопированное .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>
    
  5. Перезапустите машину и заметьте, что mjs работает с помощью nodestatus:

    cd matlabroot/toolbox/parallel/bin
    ./nodestatus
    

Проверьте установку с помощью планировщика заданий MATLAB

Чтобы убедиться, что продукты MATLAB Parallel Server установлены и настроены правильно, создайте профиль кластера и проверьте его. Инструкции см. в разделе Подключение клиента MATLAB к кластеру MATLAB Parallel Server. Можно задать количество работников, которые будут использоваться при проверке профиля, чтобы избежать занятия всего кластера. Если ваша валидация не проходит, обратитесь в службу поддержки MathWorks Install или смотрите Поиск и устранение распространенных проблем.

После создания профиля кластера можно сделать любые изменения, подходящие для ваших приложений, такие как NumWorkersRange, AttachedFiles, или AdditionalPaths. Чтобы сохранить профиль для других пользователей, в Диспетчере профилей кластеров выберите профиль и нажмите кнопку Export, а затем сохраните профиль в файл в удобном месте. Позже, при запуске Диспетчера профилей кластеров, другие пользователи могут импортировать ваш профиль, нажав Import. Дополнительные сведения о профилях кластеров см. в разделах Обнаружение кластеров и Использование профилей кластеров (Parallel Computing Toolbox).

Похожие примеры

Подробнее о