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

Обзор

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

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

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

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

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

Компоненты тулбокса и сервера

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

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

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

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

Примечание

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

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

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

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

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

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

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

В качестве альтернативы использованию планировщика заданий MATLAB можно использовать сторонний планировщик. Это может быть Microsoft Windows HPC Server (включая CCS), планировщик Platform LSF, PBS Pro® планировщик, планировщик КРУТЯЩИЙ МОМЕНТ или типовой планировщик.

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

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

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

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

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

  • В кластере уже есть строение общего доступа к файлам?

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

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

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

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

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

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

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

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

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

  • Вам нужно контролировать прогресс вашей работы или получить доступ к промежуточным данным?

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

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

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

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

Услуга mjs

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

Служба mjs управляет сеансами worker и MATLAB Job Scheduler и восстанавливает их при сбое их хост-машин. В случае сбоя планировщика рабочих заданий или MATLAB при повторном запуске службы mjs (обычно настроенной для запуска во время загрузки машины) она автоматически перезапускает планировщик заданий MATLAB и рабочие сессии, чтобы возобновить сеансы с момента сбоя системы. Дополнительные сведения о сервисе mjs см. в документации MATLAB Parallel Server.

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

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

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

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

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

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

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

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

Этап задания

Описание

Ожидание

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

С очередями

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

Управление

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

Законченный

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

Неудавшийся

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

Удаленный

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

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

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