通过使用并行构建来减少引用模型的构建时间
对于包含大型模型引用层次结构的模型,您可以通过并行构建引用模型来减少代码生成和编译时间。使用并行计算工具箱™软件,您可以在MATLAB的并行池中分发引用模型的代码生成和编译®工人。如果你也有MATLAB并行服务器软件中,您可以将代码生成和编译分布到您的MATLAB并行服务器配置。
并行构建参考模型
并行构建参考模型:
打开模型层次结构顶层模型的Configuration Parameters对话框。
选择启用并行模型参考构建复选框。
对于每个MATLAB worker,都可以设置一个与客户端的MATLAB环境一致的MATLAB环境。从构建的MATLAB工作器初始化下拉列表,选择以下值之一:
没有一个
——仿万博1manbetx真软件®不初始化工作线程。复制基本工作区
——S万博1manbetximulink尝试将基本工作空间复制到每个MATLAB工作空间。荷载顶模型
——S万博1manbetximulink将顶部模型加载到每个MATLAB worker上。
从命令行或Simulink Editor Code透视图构建模型:万博1manbetx
命令行——使用,例如,
slbuild
.构建过程在“命令窗口”中显示构建日志消息。万博1manbetxSimulink编辑器代码透视图——单击构建按钮。生成过程在诊断查看器中显示生成日志消息。
如果采用并行计算工具箱的并行首选项自动创建并行池,则自动启动并行的MATLAB worker池。有关更多信息,请参见指定你的并行偏好(并行计算工具箱).
如果在构建模型时MATLAB工作者的并行池未运行,MATLAB将使用默认集群配置文件自动打开并行工作者池。要更改工作集群的默认行为,可以修改集群概要文件的属性。如果您没有触及您的并行首选项,默认配置文件是
当地的
.使用并行首选项控制并行行为,包括扩展到集群、自动创建池和首选的工作人员数量。有关更多信息,请参见发现集群并使用集群概要文件(并行计算工具箱).有关并行计算的更多一般信息,请参见运行MATLAB函数与自动并行支持万博1manbetx(并行计算工具箱).
监视参考模型的并行构建
通过“生成状态”窗口,您可以:
查看模型层次结构的整体构建进度。
查看模型层次结构中各个模型的构建状态。
取消并行构建过程。
请注意
“构建状态”窗口只支持模型层次结构的并行构建。万博1manbetx不要使用“生成状态”窗口进行连续生成。
要打开“构建状态”窗口,请使用下列行命令之一:
coder.buildstatus.open ('
模型
”)slbuild ('
模型
”,……“OpenBuildStatusAutomatically”,真的)slbuild ('
模型
”、“StandaloneCoderTarget”,……“OpenBuildStatusAutomatically”,真的)
这个例子展示了如何监视模型层次结构的构建过程。在层次结构中,rtwdemo_parabuild_a_1
参考文献rtwdemo_parabuild_b_1
,rtwdemo_parabuild_b_2
,rtwdemo_parabuild_b_3
.
将模型文件复制到本地文件夹。
Src_dir =…fullfile (matlabroot“工具箱”,“环球套票”、“rtwdemos”);if exist(fullfile('.','myTempFolder'),'dir') rmdir('myTempFolder','s') end mkdir myTempFolder copyfile(fullfile(src_dir,'rtwdemo_parabuild_a_1.slx'),…“myTempFolder”);拷贝文件(fullfile (src_dir rtwdemo_parabuild_b_1.slx),…“myTempFolder”);拷贝文件(fullfile (src_dir rtwdemo_parabuild_b_2.slx),…“myTempFolder”);拷贝文件(fullfile (src_dir rtwdemo_parabuild_b_3.slx),…“myTempFolder”); cd myTempFolder
打开顶层模型。
open_system(“rtwdemo_parabuild_a_1”)
使用Dependency Analyzer查看模型依赖关系。
在建模选项卡上,单击向下箭头以展开设计画廊。下依赖关系,点击依赖分析仪.
开始模型层次结构的并行构建,并打开Build Status窗口。
slbuild(‘rtwdemo_parabuild_a_1’,‘OpenBuildStatusAutomatically’,真的)
Build Status窗口显示整体的构建进度和模型的构建状态,因为代码生成器在模型层次结构中工作。
下表解释了状态列值。
状态 | 描述 |
---|---|
阻塞 |
代码生成器无法调度模型构建,因为构建被依赖项阻塞。例如,子模型构建未完成。 |
计划 |
在并行构建中,当构建未被依赖项阻塞时,代码生成器将调度模型构建。模型构建的状态为 |
建筑 |
这个模型是建立在一个工人身上的。 |
完成 |
当建立模型时没有错误,状态变为 |
错误 | 如果模型构建失败,状态将变为 |
最新消息 |
模型不需要代码生成,因为当前生成的代码是最新的。 |
取消 |
当你点击取消构建按钮,则构建过程将未完成的构建的状态更改为 |
取消了 |
完成取消操作。 |
的运行时间列显示层次结构中模型的构建时间。为了减少总构建时间,分析引用模型的构建时间以及模型依赖信息。然后,考虑,例如:
重新构造引用的模型层次结构。
增加并行池中的工人数量。
另请参阅
slbuild
|coder.buildstatus.open
|coder.buildstatus.close