Для моделей, настроенных для параллельного выполнения, можно выбрать архитектуру, на которую требуется развернуть модель. Выберите из набора стандартных архитектур в Simulink ® или создайте интерфейс для пользовательской архитектуры. После выбора архитектуры можно использовать явное разбиение, чтобы указать, какие задачи на ней выполняются. Дополнительные сведения см. в разделе Разбиение модели на разделы с помощью явного разбиения.
Можно выбрать из стандартных архитектур, доступных в Simulink, или загрузить пакеты поддержки для различных доступных архитектур.
В диалоговом окне «Параллельное выполнение» на панели «Параллельное выполнение» нажмите кнопку «Выбрать». Появится селектор целевой архитектуры параллельного выполнения.

Выберите цель.
| Собственность | Описание |
|---|---|
| Один процессор с несколькими ядрами. |
| Один ЦП с несколькими ядрами и двумя FPGA. |
| Симулинк Real-Time™ цель. |
| Нажмите кнопку ОК, чтобы запустить программу установки пакета поддержки. В списке выберите цель и следуйте инструкциям. |
В окне «Целевая архитектура» снимите флажок «Сохранить свойства, совместимые», чтобы восстановить настройки существующих свойств по умолчанию. Также можно установить флажок Сохранить совместимые свойства (Preserve compatible properties), чтобы сохранить существующие параметры свойств целевого объекта.
Нажмите кнопку ОК.
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 для идентификации элемента многоядерной обработки.
Примечание
Архитектура должна содержать только один элемент узла, который идентифицирует элемент многоядерной обработки. Невозможно создать несколько узлов, идентифицирующих несколько элементов обработки или архитектуру без элемента многоядерной обработки.
Один или несколько элементов шаблона, в которых перечислены пользовательские свойства задач и триггеров.
Атрибут типа может быть 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 откройте панель Параметры конфигурации > Решатель и щелкните Настроить задачи. Откроется диалоговое окно «Одновременное выполнение».
На панели Параллельное выполнение нажмите кнопку Выбрать... в разделе Целевая архитектура. Откроется окно Целевая архитектура.
Выбрать MulticoreCustomAPI и нажмите кнопку ОК.

Диалоговое окно Параллельное выполнение обновляется и содержит свойства создания кода для задач, как показано на рисунке. Это свойства, определенные в XML-файле.
