exponenta event banner

batchsim

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

Описание

пример

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

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

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.

Укажите 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 вариант. Дополнительные сведения см. в разделе Начало работы с быстрым перезапуском.

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

свернуть все

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

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

См. также

Функции

Классы

Темы

Представлен в R2018b