Несколько рабочих процессов симуляции

При выполнении набора нескольких симуляций можно запустить их параллельно на нескольких рабочих MATLAB® в параллельном пуле. Чтобы запустить несколько симуляций, можно использовать parsim, parsim с опцией 'RunInBackground', включенной, или batchsim.

Блок-схема показывает, как, запуская несколько симуляций с parsim, parsim с RunInBackground и batchsim отличается.

parsim и команды batchsim используют лицензию Parallel Computing Toolbox™, чтобы запустить симуляции параллельно. parsim запускает симуляции в сериале, если параллельный пул не может быть создан или если лицензия Parallel Computing Toolbox не доступна. команды batchsim не могут запустить ни с чем не сравнимую Вычислительную лицензию Тулбокса.

Рабочий процесс parsim

Используя команду parsim с Parallel Computing Toolbox, чтобы запустить несколько симуляций настраивает параллельный пул автоматически и запускает симуляции параллельно. Клиент всегда связывается к работникам MATLAB.

Основной рабочий процесс parsim

  1. Создайте массив объектов Simulink.SimulationInput, in, чтобы задать изменения в модели.

  2. Задайте одноразовую настройку, требуемую для выполнения нескольких симуляций. Можно использовать SetupFcn и TransferBaseWorkspaceVariables, чтобы выполнить настройку на параллельных рабочих.

  3. Запустите parsim(in), чтобы выполнить эти несколько симуляций параллельно. Если параллельный пул не существует, parsim создает его. parsim использует настройки по умолчанию.

  4. Можно открыть Simulation Manager путем установки аргумента 'SimulationManager' на 'on' с parsim, parsim(in,'SimulationManager','on'). Simulation Manager позволяет вам контролировать симуляции, когда они запускаются, и предоставляет вам доступ к выходным параметрам симуляций, когда они готовы. Simulation Manager дает, предоставляет вам многочисленную информацию о симуляциях, работающих на рабочих. Для получения дополнительной информации смотрите Simulation Manager.

  5. Если все симуляции завершены, вы получаете массив объектов Simulink.SimulationOutput.

Ограничения

  • Закрывание сеанса работы с MATLAB отключает симуляции на рабочих, отключая извлечение частичных результатов.

parsim с рабочим процессом RunInBackground

  1. Создайте массив объектов Simulink.SimulationInput, in, чтобы задать изменения в модели.

  2. Задайте одноразовую настройку, требуемую для выполнения нескольких симуляций. Можно использовать SetupFcn и TransferBaseWorkspaceVariables, чтобы выполнить настройку на параллельных рабочих.

  3. Запустите parsim с набором опции RunInBackground к 'on': parsim(in,'RunInBackground','on'). Установка опции 'RunInBackground' к 'on' запускает симуляции асинхронно. Это сохраняет подсказку команды MATLAB доступным включением вам работать над другими задачами.

  4. С набором опции 'RunInBackground' к 'on' parsim возвращает объект Simulink.Simulation.Future. Можно опросить этот объект проверять состояние симуляций, выбрать выходные параметры симуляций, когда они завершаются или отменяют симуляции. Для получения дополнительной информации смотрите Simulink.Simulation.Future.

Ограничения

  • Закрывание сеанса работы с MATLAB отключает симуляции на рабочих, отключая извлечение частичных результатов. Если объект future убран, вы впоследствии не можете получить доступ к результатам симуляций.

  • Используя цикл метода fetchNext на объектах Future, наряду с Simulation Manager заставляет их конкурировать за извлечение объектов Future. Используйте или fetchNext следующий цикл или Simulation Manager, чтобы получить выходные параметры завершенных симуляций.

Рабочий процесс batchsim

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

  1. Создайте массив объектов Simulink.SimulationInput, in, чтобы задать изменения в модели.

  2. Задайте одноразовую настройку, требуемую для выполнения нескольких симуляций. Можно использовать SetupFcn и TransferBaseWorkspaceVariables, чтобы выполнить настройку на параллельных рабочих.

  3. Чтобы работать на кластерном или настольном фоне, вызовите batchsim, чтобы разгрузить выполнение симуляций. С batchsim можно использовать большинство аргументов, которые совместимы с командами batch и parsim. Для получения дополнительной информации смотрите batchsim.

    Используя batchsim, вы разгрузили симуляции работнику MATLAB. Чтобы запустить пакетное задание на нескольких рабочих, задайте размер пула, N, который является целым числом, задающим количество рабочих, чтобы превратить в параллельный пул для задания: batchsim(in, 'Pool', N). Должны быть, по крайней мере, рабочие N+1, доступные на кластере. Если размер пула не задан, batchsim(in) запускает симуляции на одном рабочем в кластере, заданном кластерным профилем по умолчанию.

    Примечание

    Ошибки batchsim, когда используется с размером пула, если лицензия Parallel Computing Toolbox не доступна.

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

  5. При представлении пакетного задания batchsim возвращает объект задания, содержащий ID задания и другую информацию, которую можно использовать, чтобы получить доступ к пакетному заданию в более позднее время. Доступ к этому заданию снова, чтобы проверять прогресс симуляций.

Ограничения

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

  • batchsim не дает вам способность контролировать симуляции с Simulation Manager. Для пакетных заданий можно использовать монитор пакетного задания, который говорит вам, если задание является очередями, происходящими, или завершенными. Для получения дополнительной информации смотрите Монитор Задания (Parallel Computing Toolbox)

Смотрите также

Функции

Классы

Похожие темы