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