Multicore programming, or modeling for concurrent execution, helps you to create concurrent systems for deployment on multicore processor and multiprocessor systems. Examples of such systems are signal-processing and plant-control systems. Simulink® partitioning and mapping techniques help you to overcome common challenges in designing systems for concurrent execution.
The figure shows a sample system with multiple functions designed to execute on a CPU- and FPGA-based multiprocessor system. The system is partitioned into multiple components that are mapped to the CPU task scheduler or the FPGA.
To learn the fundamentals of multicore programming, see Concepts in Multicore Programming. For information on how to design systems for concurrent execution in Simulink, see Multicore Programming with Simulink.
Simulink.architecture.config | Create or convert configuration for concurrent execution |
Simulink.architecture.add | Add tasks or triggers to selected architecture of model |
Simulink.architecture.delete | Delete triggers and tasks from selected architecture of model |
Simulink.architecture.find_system | Find objects under architecture object |
Simulink.architecture.get_param | Get configuration parameters of architecture objects |
Simulink.architecture.importAndSelect | Import and select target architecture for concurrent execution environment for model |
Simulink.architecture.profile | Generate profile report for model configured for concurrent execution |
Simulink.architecture.register | Add custom target architecture to concurrent execution target architecture selector |
Simulink.architecture.set_param | Set architecture object properties |
Simulink.GlobalDataTransfer | Configure concurrent execution data transfers |
Configure Your Model for Concurrent Execution
Learn how to configure your Simulink model to take advantage of concurrent execution.
Choose or define a target architecture for a model configured for concurrent execution.
Partition Your Model Using Explicit Partitioning
Add tasks, create partitions, and map individual tasks to partitions using explicit partitioning.
Configure Data Transfer Settings Between Concurrent Tasks
Specify options for handling data transfers between concurrently executing partitions.
Optimize and Deploy on a Multicore Target
Configure a model for concurrent execution using explicit partitioning and deploy it to a target.
Implement Data Parallelism in Simulink
This example shows how to implement data parallelism for a system in a Simulink model.
Implement Task Parallelism in Simulink
Learn how to implement task parallelism for a system in a Simulink model.
Implement Pipelining in Simulink
This example shows how to implement pipelining for a system in a Simulink model.
Assigning Tasks to Cores for Multicore Programming
This example shows how to take advantage of executing code on a multicore processor by graphical partitioning.
Implement an FFT on a Multicore Processor and an FPGA
This example shows you how to take advantage of a multicore processor target with FPGA acceleration by graphically partitioning a model.
Multicore Deployment of a Plant Model
This example illustrates how to take advantage of executing multithreaded code on a multicore processor using graphical partitioning.
Concepts in Multicore Programming
Theory relevant to modeling for concurrent execution.
Multicore Programming with Simulink
Modeling for concurrent execution using Simulink.
Implicit and Explicit Partitioning of Models
Learn about the key differences between implicit and explicit partitioning.
Concurrent Execution Window: Main Pane
Parameters for configuring tasks for concurrent execution
Data Transfer Options for Concurrent Execution
This tab displays the data transfer options for configuring models for targets with multicore processors.
Supported Targets For Multicore Programming
Deploy concurrent execution models to supported multicore targets.
Limitations with Multicore Programming in Simulink
Limitations and considerations when partitioning a model for concurrent execution.