主要内容

为多核编程分配任务

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

简介

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

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

打开项目

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

slexMulticoreExample

生成多线程代码

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

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

您可以返回“并发执行”对话框,尝试不同的核心分配。属性,您可以尝试不指定核心亲缘关系亲和力财产[].这是默认设置,它允许Simulink生成适合在多核处理器上动态调度的多线程代码。万博1manbetx

相关的话题