主要内容

为多核编程分配任务

这个例子展示了如何通过图形化分区在多核处理器上执行代码。这个例子需要Simulink®Coder™软金宝app件来生成多线程代码。

简介

多核编程允许您使用现代多核处理器的处理能力来创建高性能应用程序。金宝appSimulink®软件允许您利用多核编程,允许您以图形化方式对算法进行分区,并将从这些分区生成的代码分配给多核处理器上的并行线程。

并行线程通常由动态地将线程分配给核心的操作系统调度。这允许调度器在提供公平概念的同时充分利用内核。然而,在许多应用程序中,您可能需要对如何使用核心进行额外的控制,或者您可能希望将一组核心专门用于特定的逻辑,例如提高确定性。图形化分区提供了这种级别的控制,如本例所示。

打开项目

典型的多核场景涉及一个多速率模型,您希望将快速率的代码分配给一个核心,将慢速率的代码分配给其他核心。这可能允许您为这些更快的速率添加更多的逻辑,或者实现更多的确定性。一般来说,您可能希望将核心专用于对资源需求最大的应用程序逻辑。首先,打开多核项目:

slexMulticoreExample

生成多线程代码

该应用程序模型已经通过可从配置参数对话框的“求解器”窗格访问的“并发执行”对话框划分为四个并发任务。使用此对话框可指定逻辑、任务和核心分配。在这个例子中,应用程序逻辑被划分为:

双击生成代码和概要报告按钮生成多线程代码并分析其执行情况。此操作运行和检测生成的可执行文件,并生成分析结果和核心占用图。核心占用图显示了在执行的每个时间步骤中如何使用内核。在本例中,第一个核心用于快速速率(Task1和Task2),第二个核心用于较慢的速率(Task3和Task4)。

您可以返回到“并发执行”对话框来尝试不同的核心分配。方法,可以尝试不指定核心亲和性亲和力财产[].这是默认设置,允许Simulink生成适合多核处理器上动态调度的多线程代码。金宝app

相关的话题