主要内容

使用对Raspberry PI的CPU核心亲和力实现多核编程

此示例显示了如何为Raspberry PI™硬件模型使用Simulink®支持包的显式分区,以创建原子子系统并在金宝appMulti金宝appcore Raspberry PI处理器上执行任务。

介绍

多核编程可帮助您提高部署应用程序的性能,允许您在典型的计算负载下模拟,并尝试多种配置分区和映射应用程序的配置。

在该示例中,配置用于多核执行的覆盆子PI Simulink模型。金宝app此示例还向您展示了如何在单个核心覆盆子PI处理器上执行相同的Simulink模型,并比较单核和多核执行的金宝app结果。

先决条件

我们建议您完成用于覆盆子PI硬件的Simulink支持包金宝app入门金宝app例子。

raspberry Pi MultiCore项目文件夹

这个支持包金宝app有一个预配置的多核项目。

1.要打开此文件夹,请选择金宝appSimulink开始页面>金宝app用于覆盆金宝app子PI硬件的Simulink支持包>覆盆子pi multicore.

2.在这方面创建项目对话框,输入项目名称,然后选择要保存项目的文件夹位置。

3.点击好的

4.警告信息,项目文件夹不存在。你想创建它吗?, 被陈列。点击是的。项目文件夹打开。

楷模文件夹包含两个覆盆子PI Simulink模型。金宝app

  • 覆盆子PI多核音频

  • 覆盆子pi multicore简单

此示例展示了Raspberry PI MultiCore执行RaspBerryPI_Multicore_Simple Simulink模型的并发任务的执行。金宝app

要打开模型,请双击RaspBerryPI_Multicore_Simple模型。

覆盆子PI多核简单模型

这款Sim金宝appulink Model有三个方面,输入功能, 和输出

1。输入区域

该区域由柜台组成,其上限是10.,以及随机数发生器。这采样时间计数器和随机数生成器块上的参数设置为0.5秒。

2。功能区

计数器和随机数发生器输出乘以,并将所得输出与提供的值进行比较临界点堵塞。这临界点值设置为7.

3.输出区域

如果导致输出大于设置的值临界点模块时,树莓Pi板配置的LED灯点亮。

RASPBERY PI CPU上单核执行的运行模型

1.打开RaspBerryPI_Multicore_Simple Simulink金宝app模型。

2.在这方面硬件Simulink模型的金宝app标签,在模式部分,选择跑在船上然后点击构建,部署和启动

3.要打开与Raspberry PI的SSH连接,请在Matlab®命令窗口执行此命令:

r = raspberrypi('','','');

r.openshell.

4.要查看Raspberry PI Core上的负载,请在Raspberry PI shell执行此命令:

HTOP.

观察到仅利用一个CPU来执行模型,并且平均核心负载很高。

配置Simulink金宝app模型以进行并发执行,并指定目标架构

您可以配置Simulink模型以利用并发执行金宝app。配置模型以进行并发执行后,您可以选择要部署到您的模型的体系结构。

  1. 打开RaspBerryPI_Multicore_Simple Simulin金宝appk模型。

  2. 在这方面造型选项卡,单击模型设置

  3. 选择硬件实现>硬件板并选择覆盆子PI.设备。

  4. 选择代码生成>界面>高级参数并清楚地清除MAT文件日志记录选择。

  5. 选择求解器,然后在里面求解器选择部分,选择固定步骤为了类型自动(自动求解​​器选择)为了求解器

  6. 在下面求解器细节, 选择允许任务同时执行目标。选择此选项时,Simulink允许引用的模型中的每个速率作金宝app为覆盆子PI处理器上的独立并发任务。

  7. 点击配置任务

  8. 在里面并发执行对话框,下面并发性建模选项部分,选择为并发行为启用显式模型分区

  9. 点击选择选择目标架构

  10. 在里面目标架构对话框中,选择Multicorecustomapi-Multicore,具有核心亲和力

  11. 清除保留兼容属性选项可将现有目标属性设置重置为其默认值。或者,选择保留兼容属性选项以保留现有的目标属性设置。

  12. 点击好的

并发执行对话框更新包含代码生成属性如图所示的任务。

使用显式分区分区Si金宝appmulink模型

配置模型以进行并发执行后,可以使用显式分区添加单个任务并映射分区。这使您可以将模型的不同部分执行到架构的不同部分。有关更多信息,请参阅模型隐含和显式分区

将模型块转换为原子子系统

确保将模型的根级别转换为原子子系统块。

  1. 打开RaspBerryPI_Multicore_Simple Simulin金宝appk模型。

  2. 选择输入该模型的区域。

  3. 在这方面造型标签,下面成分部分,选择原子子系统来自从选择创建组件部分。

  4. 重复步骤2-3功能输出模型的区域。

添加定期触发器和任务

周期性触发器代表多个定期中断源,例如多个定时器。触发的周期性是触发时间表或触发期间的任务的基本速率。此模型仅使用一个定期触发器。在定期节点下创建三个任务输入功能, 和输出地区。

  1. 在里面并发执行对话框,右键单击定期节点并选择添加任务。任务节点出现在配置执行等级制度。

  2. 选择任务节点并输入任务的名称和句点,然后单击申请。在此示例中,任务的时段与块的采样时间相同,0.5秒。

  3. (可选)为任务指定颜色。颜色说明了块到任务映射。如果未分配颜色,则Simulink选择默认颜色。金宝app如果为模型启用采样时间颜色,则该软件致授予设置。

  4. 重复步骤1-3以为模型的每个区域创建周期性节点。

  5. 点击申请有必要的。

将块映射到任务,触发器和节点

创建任务和触发器后,您可以将分区显式分配给这些执行元素。

  1. 在里面并发执行对话框,单击任务和映射节点。这任务和映射窗格出现。原子子系统块在表中显示在表中,每个块下方的选择任务条目。

  2. 分配任务给输入原子子系统,点击选择任务盒子里的盒子姓名列和选择定期:Task1从下拉列表中。块到任务映射符号显示在模型块的左上角。

  3. 重复步骤1-2功能输出原子子系统。

RAPBERY PI CPU上的多核执行运行模型

1.打开RaspBerryPI_Multicore_Simple Simulink金宝app模型。

2.在这方面硬件Simulink模型的金宝app标签,在模式部分,选择跑在船上然后点击构建,部署和启动

3.要打开与Raspberry PI的SSH连接,请在Matlab®命令窗口执行此命令:

r = raspberrypi('','','');

r.openshell.

4.要查看Raspberry PI Core上的负载,请在Raspberry PI shell执行此命令:

HTOP.

观察到三个CPU内核用于执行模型,并且与单核执行相比,平均核心负载低。

笔记: 在里面楷模文件夹,提供了RASPBeryPI_Multicore_SIMPLE_TASKS_MAPPED SIMULI金宝appNK MODEM供您参考。该模型已被配置为同时执行,并且已明确划分。您可以在Raspberry PI板上部署金宝app此Simulink模型,并在Raspberry PI Shell窗口中观察类似的结果。

其他事情要尝试

也可以看看