batchsim

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

Описание

пример

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 аргументы. Name имя аргумента и Value соответствующее значение. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

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

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

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

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

Определение указателя на функцию к 'SetupFcn' запускаться однажды на рабочего перед запуском симуляций.

Примечание

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

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

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

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

Примечание

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

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

Примечание

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

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

свернуть все

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

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

Введенный в R2018b