Для моделей, настроенных для параллельного выполнения, можно выбрать архитектуру, в которую необходимо развернуть модель. Выберите из набора предопределенных архитектур в Simulink®или можно создать интерфейс для пользовательской архитектуры. После выбора архитектуры можно использовать явное разбиение на разделы, чтобы указать, какие задачи выполняются на ней. Для получения дополнительной информации смотрите Раздел вашей модели Используя явное разбиение.
Можно выбрать из предопределенных архитектур, доступных в Simulink, или загрузить пакеты поддержки для различных доступных архитектур.
В диалоговом окне Параллельное выполнение на панели Concurrent Execution нажмите Select. Появится целевой селектор архитектуры параллельного выполнения.
Выберите цель.
Свойство | Описание |
---|---|
| Один центральный процессор с несколькими ядрами. |
| Один центральный процессор с несколькими ядрами и двумя FPGA. |
| Simulink Real-Time™ цель. |
| Нажмите кнопку OK, чтобы запустить программу установки пакета поддержки. Из списка выберите цель и следуйте инструкциям. |
В окне Target architecture снимите флажок Preserve compatible properties, чтобы сбросить существующие параметры целевых свойств по умолчанию. Также установите флажок Preserve compatible properties, чтобы сохранить существующие параметры целевых свойств.
Нажмите OK.
Simulink добавляет соответствующие программные и аппаратные узлы в иерархию дерева строения. Например, следующий рисунок иллюстрирует один программный узел и два аппаратных узла, добавленных в дерево строения при выборе Sample architecture
как целевая архитектура.
Пользовательский файл архитектуры является XML-файлом, который позволяет вам задавать пользовательские целевые свойства для задач и триггеров. Для примера может потребоваться задать пользовательские свойства для представления многопоточных API. Многопоточные API необходимы, чтобы использовать преимущества параллелизма на целевом процессоре.
Ниже приведен пример пользовательского файла архитектуры:
<architecture brief="Multicore with custom threading API" format="1.1" revision="1.1" uuid="MulticoreCustomAPI" name="MulticoreCustomAPI"> <configurationSet> <parameter name="SystemTargetFile" value="ert.tlc"/> <parameter name="SystemTargetFile" value="grt.tlc"/> </configurationSet> <node name="MulticoreProcessor" type="SoftwareNode" uuid="MulticoreProcessor"/> <template name="CustomTask" type="Task" uuid="CustomTask"> <property name="affinity" prompt="Affinity:" value="1" evaluate="true"/> <property name="schedulingPolicy" prompt="Scheduling policy:" value="Rate-monotonic"> <allowedValue>Rate-monotonic</allowedValue> <allowedValue>Round-robin</allowedValue> </property> </template> </architecture>
Файл архитектуры должен содержать:
Элемент архитектуры, который определяет базовую информацию, используемую Simulink для идентификации архитектуры.
A configurationSet
элемент, в котором перечислены системные целевые файлы, для которых эта архитектура действительна.
Один элемент узла, который Simulink использует для идентификации элемента многоядерной обработки.
Примечание
Архитектура должна содержать только один элемент узла, который идентифицирует многоядерный элемент обработки. Вы не можете создать несколько узлов, идентифицирующих несколько элементов обработки или архитектуру без многоядерного элемента обработки.
Один или несколько элементов шаблона, перечисляющих пользовательские свойства для задач и триггеров.
Атрибут type может быть Task
, PeriodicTrigger
, или AperiodicTrigger
.
Каждое свойство доступно для редактирования и имеет значение по умолчанию, заданное в value
атрибут.
Каждое свойство может быть текстовым полем, флажком или полем со списком. Флажок является тем, где можно задать value
атрибут к on
или off
. Поле со списком - это поле, в котором вы можете опционально перечислить allowedValue
элементы как часть свойства.
Каждое свойство текстового поля может также опционально задать evaluate
атрибут. Это позволяет вам разместить MATLAB® имена переменных как значение свойства.
Принимая, что вы сохранили пользовательский файл целевой архитектуры в C:\custom_arch.xml
, зарегистрируйте этот файл в Simulink, используя Simulink.architecture.register
функция.
Для примера:
Сохраните содержимое перечисленных XML- файл в custom_arch.xml
.
В Командном Окне MATLAB введите:
Simulink.architecture.register('custom_arch.xml')
В Командном Окне MATLAB введите:
slexMulticoreSolverExample
В редакторе Simulink откройте панель Configuration Parameters > Solver и нажмите Configure Tasks. Откроется диалоговое окно Параллельное выполнение (Concurrent Execution).
На панели Concurrent Execution щелкните Select... под Target Architecture. Окно Target архитектуры отображений.
Выберите MulticoreCustomAPI
и нажмите OK.
Диалоговое окно Параллельное выполнение обновляется, чтобы содержать свойства Генерации кода для задач, как показано на рисунке. Это свойства, определенные в XML- файл.