batchsim

Разгрузите симуляции, чтобы работать на вычислить кластере

Синтаксис

simJob = batchsim(in)
simJob = batchsim(myCluster,in)
simJob = batchsim(...,Name,Value)

Описание

пример

simJob = batchsim(in) запускает пакетное задание на одном рабочем моделировать модель с помощью входных параметров, заданных в объекте SimulationInput, in.

simJob = batchsim(myCluster,in) запускает пакетное задание на кластере, идентифицированном кластерным объектом myCluster. Если кластерный профиль не задан, batchsim использует кластерный профиль по умолчанию, как настроено в параллельных настройках. Для получения дополнительной информации смотрите, Обнаруживают Кластеры и Профили Кластера Использования (Parallel Computing Toolbox).

simJob = batchsim(...,Name,Value) запускает пакетное задание, которое моделирует модель с помощью входных параметров, заданных в объекте SimulationInput и опциях, заданных как пара Name,Value.

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

Команда batchsim использует Parallel Computing Toolbox™, и лицензии MATLAB Parallel Server™, чтобы работать на симуляциях вычисляют кластер. batchsim запускает симуляции в сериале, если параллельный пул не может быть создан. Если лицензия Parallel Computing Toolbox не доступна, ошибки batchsim.

Примеры

свернуть все

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

Этот пример использует модель ex_sldemo_househeat и запускает симуляции в пакете, чтобы наблюдать поведение модели для различных температурных сетболов.

Откройте модель.

openExample('simulink/OpenTheModelExample');
open_system('ex_sldemo_househeat');
load_system('ex_sldemo_househeat')

Задайте множество значений для различных температур.

setPointValues = 65:2:85;
spv_Length = length(setPointValues);

Используя setPointValues, инициализируйте массив объектов Simulink.SimulationInput.

in(1:spv_Length) = Simulink.SimulationInput('ex_sldemo_househeat');
for i = 1:1:spv_Length 
    in(i) = in(i).setBlockParameter('ex_sldemo_househeat/Set Point',...
        'Value',num2str(setPointValues(i)));
end

Задайте размер пула количества рабочих, чтобы использовать. В дополнение к количеству рабочих, используемых, чтобы запустить симуляции параллельно, требуется главный рабочий. В этом случае давайте примем, что три рабочих доступны, чтобы запустить пакетное задание для параллельных симуляций. Объект задания возвращает полезные метаданные как показано. Можно использовать задание, которому ID, чтобы получить доступ к заданию возражает позже от любой машины. NumWorkers говорит вам, сколько рабочих запускает симуляции. NumWorkers всегда является количеством рабочих, заданных в аргументе 'Pool' и дополнительном главном рабочем.

simJob = batchsim(in,'Pool',3)
                  ID: 1
                Type: pool
          NumWorkers: 4
            Username: #####
               State: running
      SubmitDateTime: ##-###-#### ##:##:##
       StartDateTime: 
    Running Duration: 0 days 0h 0m 0s

Доступ к результатам пакетного задания с помощью метода fetchOutputs. fetchOutputs возвращает массив объектов Simulink.SimulationOuput.

out = fetchOutputs(simJob)
1x11 Simulink.SimulationOutput array

Входные параметры

свернуть все

Заданный как объект Simulink.SimulationInput или массив объектов Simulink.SimulationInput, который используется, чтобы задать изменения в модели для симуляции.

Пример: in = Simulink.SimulationInput('vdp')

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

Аргументы в виде пар имя-значение

Пример: 'Pool', 5

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Заданный как вектор символов, массив ячеек или массив вектора символов, чтобы задать пути, которые будут добавлены к пути поиска файлов MATLAB рабочих, прежде чем симуляции выполняются. Путь поиска файлов по умолчанию не может быть тем же самым на рабочих, как это находится на клиенте; разностью хода мог быть результат различных текущих рабочих папок (pwd), платформ или доступа к сетевой файловой системе. Свойство 'AdditionalPaths' может гарантировать, что рабочие смотрят в правильных местоположениях для необходимых файлов кода, файлов данных, образцовых файлов, и т.д.

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

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

Заданный как TRUE или FALSE, чтобы управлять, присоединены ли файлы кода автоматически к заданию.

Заданный как TRUE или FALSE, чтобы указать на набор diary.

Задайте function handle к 'CleanupFcn', чтобы запуститься однажды на рабочего после того, как симуляции будут завершены.

Задает имена переменных окружения, скопированных от клиентского сеанса до рабочих. Имена, заданные здесь, добавлены к свойству 'EnvironmentVariables', заданному в применимом параллельном профиле, чтобы сформировать полный список переменных окружения. Любые переменные, перечисленные, которые не установлены, не копируются в рабочих. Эти переменные окружения будут установлены на рабочих на время пакетного задания.

Когда ManageDependencies установлен в 'on', зависимости моделей автоматически отправляются параллельным рабочим при необходимости. Если ManageDependencies установлен в 'off', явным образом присоедините зависимости моделей к параллельному пулу.

Целое число, задающее количество рабочих, чтобы превратить в параллельный пул для задания в дополнение к рабочему, запускающему само пакетное задание. Симуляции используют этот пул для выполнения. Поскольку пул требует рабочих N в дополнение к рабочему, запускающему пакет, должны быть, по крайней мере, рабочие N+1, доступные на кластере.

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

Задайте function handle к 'SetupFcn', чтобы запуститься однажды на рабочего перед запуском симуляций.

Примечание

Когда buildRapidAcceleratorTarget используется в SetupFcn, и модели задали, внешние входные параметры, ​ или устанавливают 'LoadExternalInput' на 'off' или гарантируют, что заданный внешний вход доступен на рабочих, чтобы предотвратить ошибку компиляции.

Установите на 'on', чтобы скопировать прогресс симуляций в командном окне к diary объекта Simulink.Simulation.Job. Прогресс скрыт, когда установлено в 'off'.

Установка 'StopOnError' к 'on' останавливает выполнение симуляций, если с ошибкой сталкиваются.

Когда TransferBaseWorkspaceVariables установлен в true, переменные, используемые в модели, и задал в базовом рабочем пространстве, передаются параллельным рабочим.

Примечание

Использование TransferBaseWorkspaceVariables требует образцовой компиляции.

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

Примечание

При использовании batchsim используйте опцию UseFastRestart а не опцию FastRestart. См. Запуск с Быстрым Перезапуском для получения дополнительной информации.

Выходные аргументы

свернуть все

Объект, содержащий метаданные представленного пакетного задания. Опросите объект задания использование, это - ID, чтобы проверять состояние симуляций или получить доступ к выходным параметрам на завершении задания.

Расширенные возможности

Введенный в R2018b