При реализации многоядерного программирования для приложения в Simulink®, существует два способа разделить вашу модель для работы отдельных процессорных узлов. Если вы плохо знакомы с многоядерным программированием в Simulink, используйте значение по умолчанию (неявное разделение) для вашей первой итерации реализации многоядерного программирования.
Автоматизированный способ создать задачи и сопоставить их с вашими процессорными узлами называется implicit partitioning. Simulink делит ваше основанное на модели на шаге расчета блоков на корневом уровне. Каждый шаг расчета в вашей модели соответствует разделу, и все блоки одного уровня или шага расчета принадлежат тому же разделу. Simulink сопоставляет эти разделы с задачами, которые работают на вашем процессоре. Неявное разделение принимает вашу архитектуру, чтобы быть одним многожильным центральным процессором. Планировщик задач центрального процессора справляется со всеми разделенными задачами.
Если вы хотите задать, как разделить вашу модель, используйте explicit partitioning. В явном разделении вы создаете разделы в модели корневого уровня при помощи моделей, на которые ссылаются, MATLAB® системные блоки, блоки MATLAB function, Stateflow® графики и Подсистемы Simulink. Например, если ваша модель имеет сбор данных и контроллер, разделите свою модель путем помещения этих компонентов в две модели, на которые ссылаются, на корневом уровне модели. Каждый шаг расчета блоков в модели соответствует разделу. Можно добавить задачи работать на процессорных узлах в диалоговом окне Concurrent Execution и присвоить разделы этим задачам. Если некоторые разделы оставляют неприсвоенными, Simulink автоматически присваивает их задачам.
В явном разделении можно задать собственную архитектуру. Архитектура по умолчанию является многожильным центральным процессором, то же самое как принятая архитектура в неявном разделении. Явное разделение имеет больше ограничений на вашу модель корневого уровня, чем неявное разделение. Для получения дополнительной информации смотрите Ограничения с Многоядерным программированием в Simulink.
Существует несколько способов разделить вашу модель для параллельного выполнения в Simulink. Основанные на уровне и основанные на модели подходы дают, вы, в основном, графический означаете представлять параллелизм для систем, которые представлены с помощью блоков Stateflow и Simulink. Можно разделить код MATLAB с помощью блока MATLAB System и блока MATLAB Function. Можно также разделить модели физических систем с помощью методов мультирешателя.
Каждый метод имеет дополнительные факторы, чтобы помочь вам решить, чтобы использовать.
Цель | Допустимые методы разделения | Факторы |
---|---|---|
Увеличьте эффективность симуляции на хосте - компьютере. | Никакой метод разделения | Simulink пытается оптимизировать эффективность хоста - компьютера независимо от метода моделирования, который вы используете. Для получения дополнительной информации о способах, которыми Simulink помогает вам улучшать производительность, смотрите, Оптимизируют Эффективность. |
Увеличьте эффективность симуляции объекта в многожильном HIL (оборудование в цикле) система. | Можно использовать любой из методов разделения и их комбинаций. | Характеристики обработки системы HIL и встроенной системы обработки могут варьироваться значительно. Рассмотрите разделение вашей системы в большее количество единиц работы, чем существует количество обработки элементов в HIL или встраиваемой системе. Это соглашение позволяет гибкость в процессе отображения. |
Создайте допустимую модель многоскоростной параллельной системы, чтобы использовать в своих интересах многожильную систему обработки. | Можно использовать любой из методов разделения и их комбинаций. | Разделение может ввести задержки сигнала, чтобы представлять требования передачи данных для параллельного выполнения. Для получения дополнительной информации смотрите, Конфигурируют Настройки Передачи данных Между Параллельными Задачами. |
Создайте допустимую модель неоднородной системы, чтобы использовать в своих интересах многожильный и обработка FPGA. |
| Рассмотрите разделение для обработки FPGA, где ваши расчеты имеют узкие места, которые могли уменьшаться с помощью мелкомодульного аппаратного параллелизма. |