exponenta event banner

Как продукты для параллельных вычислений выполняют задание

Обзор

Программное обеспечение Parallel Computing Toolbox™ и MATLAB ® Parallel Server™ позволяет решать ресурсоемкие задачи с помощью MATLAB и Simulink ® на многоядерных и многопроцессорных компьютерах. Параллельные конструкции обработки, такие как параллельные циклы и кодовые блоки, распределенные массивы, параллельные числовые алгоритмы и функции передачи сообщений, позволяют реализовать параллельные задачи и параллельные данные алгоритмы на высоком уровне в MATLAB без программирования для конкретных аппаратных и сетевых архитектур.

Задание - это большая операция, которую необходимо выполнить в сеансе MATLAB. Задание разбивается на сегменты, называемые задачами. Вы решаете, как лучше разделить свою работу на задачи. Можно разделить задание на идентичные задачи, но задачи не обязательно должны быть идентичными.

Сеанс MATLAB, в котором определяется задание и его задачи, называется сеансом клиента. Часто это происходит на машине, где вы программируете MATLAB. Клиент использует программное обеспечение Parallel Computing Toolbox для определения заданий и задач и их запуска в кластере, локальном для компьютера. Программное обеспечение MATLAB Parallel Server - это продукт, который выполняет задание на кластере машин.

Планировщик заданий MATLAB - это процесс, который координирует выполнение заданий и оценку их задач. Планировщик заданий MATLAB распределяет задачи для оценки по отдельным сеансам MATLAB сервера, называемым рабочими. Использование планировщика заданий MATLAB для доступа к кластеру является необязательным; распределение задач среди работников кластера может также выполняться сторонним планировщиком, таким как Microsoft ® Windows ® HPC Server (включая CCS) или Platform LSF ®.

Базовая настройка параллельных вычислений

Панель инструментов и серверные компоненты

Планировщик заданий MATLAB, работники и клиенты

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

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

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

Примечание

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

Взаимодействие сеансов параллельных вычислений

Большая сеть может включать несколько планировщиков заданий MATLAB, а также несколько клиентских сеансов. Любой клиентский сеанс может создавать, запускать задания и получать доступ к ним в любом планировщике заданий MATLAB, но рабочий сеанс одновременно регистрируется и выделяется только одному планировщику заданий MATLAB. На следующем рисунке показана конфигурация с несколькими планировщиками заданий MATLAB.

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

Локальный кластер

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

Сторонние планировщики

В качестве альтернативы использованию планировщика заданий MATLAB можно использовать сторонний планировщик. Это может быть Microsoft Windows HPC Server (включая CCS), планировщик LSF платформы, планировщик PBS Pro ®, планировщик TORQUE или общий планировщик.

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

  • У кластера уже есть планировщик?

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

  • Является ли обработка заданий параллельных вычислений единственным необходимым управлением планированием кластеров?

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

  • Конфигурация общего доступа к файлам в кластере уже существует?

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

  • Вы заинтересованы в пакетном режиме или управляемой интерактивной обработке?

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

  • Есть ли вопросы безопасности?

    Собственный планировщик может быть настроен в соответствии с конкретными требованиями безопасности.

  • Сколько узлов находится в кластере?

    Если у вас большой кластер, вероятно, у вас уже есть планировщик. При возникновении вопросов о размере кластера и планировщике заданий MATLAB обратитесь к представителю MathWorks.

  • Кто управляет кластером?

    Лицо, управляющее кластером, может иметь предпочтения по расписанию заданий.

  • Нужно ли отслеживать ход выполнения задания или получать доступ к промежуточным данным?

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

Компоненты на смешанных платформах или гетерогенных кластерах

Программное обеспечение Parallel Computing Toolbox и MATLAB Parallel Server поддерживаются в операционных системах Windows, UNIX ® и Macintosh. Поддерживаются смешанные платформы, так что клиенты, планировщик заданий MATLAB и работники не должны находиться на одной платформе. Другие ограничения описаны в Системных требованиях.

В среде с смешанной платформой системные администраторы должны соблюдать соответствующие инструкции по установке для локального компьютера, на котором устанавливается программное обеспечение.

mjs Сервис

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

Служба mjs управляет сеансами рабочего и планировщика заданий MATLAB и восстанавливает их при сбое их хост-машин. При сбое рабочего компьютера или компьютера планировщика заданий MATLAB, когда служба mjs снова запускается (обычно настраивается для запуска во время загрузки компьютера), он автоматически перезапускает планировщик заданий MATLAB и рабочие сессии, чтобы возобновить свои сессии до сбоя системы. Более подробная информация об услуге mjs содержится в документации по параллельному серверу MATLAB.

Компоненты, представленные в клиенте

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

При создании задания в сеансе клиента оно фактически существует в хранилище заданий планировщика заданий MATLAB. Сеанс клиента имеет доступ к заданию через объект задания. Аналогичным образом, задачи, определенные для задания в сеансе клиента, существуют в расположении данных планировщика заданий MATLAB и доступ к ним осуществляется через объекты задач.

Жизненный цикл задания

При создании и выполнении задания оно проходит несколько этапов. Каждый этап задания отражается в значении объекта задания. State свойство, которое может быть pending, queued, running, или finished. Каждый из этих этапов кратко описан в этом разделе.

На рисунке ниже показаны этапы жизненного цикла задания. В планировщике заданий MATLAB (или другом планировщике) задания отображаются по их состоянию. Некоторые функции, используемые для управления заданием: createJob, submit, и fetchOutputs.

Этапы задания

В следующей таблице описывается каждый этап жизненного цикла задания.

Этап задания

Описание

Ожидание

Вы создаете задание в планировщике с помощью createJob в клиентском сеансе программного обеспечения Parallel Computing Toolbox. Первое состояние задания: pending. Это происходит при определении задания путем добавления к нему задач.

С очередями

При выполнении submit функция в задании, планировщик заданий MATLAB или планировщик помещает задание в очередь, и состояние задания queued. Планировщик выполняет задания в очереди в той последовательности, в которой они были отправлены, все задания, перемещающиеся вверх по очереди, как задания перед их завершением. Последовательность заданий в очереди можно изменить с помощью promote и demote функции.

Управление

Когда задание достигает верхней части очереди, планировщик распределяет задачи задания по рабочим сессиям для оценки. Состояние задания сейчас running. Если для заданий задания доступно больше работников, чем требуется, планировщик начинает выполнение следующего задания. Таким образом, одновременно может выполняться несколько заданий.

Законченный

После оценки всех задач задания оно перемещается в finished состояние. В это время можно извлечь результаты из всех задач в задании с помощью функции. fetchOutputs.

Неудавшийся

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

Удаленный

После удаления данных задания из местоположения данных или из планировщика заданий MATLAB с помощью delete функция, состояние задания в клиенте deleted. Это состояние доступно только до тех пор, пока объект задания остается в клиенте.

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

Завершенные задания можно окончательно удалить из хранилища планировщика заданий MATLAB или планировщика с помощью графического интерфейса монитора заданий или delete функция.