通过使用并行构建减少引用模型的构建时间
对于包含大型模型参考层次结构的模型,您可以通过并行构建引用模型来减少代码生成和编译时间。使用并行计算工具箱™软件,您可以跨MATLAB的并行池分发引用模型的代码生成和编译®工人。如果你也有MATLAB并行服务器™软件中,您可以将代码生成和编译分布到您的MATLAB并行服务器配置。
并行构建引用模型
并行构建参考模型:
打开模型层次结构的顶层模型的Configuration Parameters对话框。
选择启用并行模型引用构建复选框。
对于每个MATLAB工作者,可以设置一个与客户端MATLAB环境一致的MATLAB环境。从构建的MATLAB工作器初始化下拉列表,选择其中一个值:
没有一个
——仿真软件®不初始化工人。复制基本工作空间
——Simulink试图将基本工作区复制到每个MATLAB工作者。负载顶级模特
——Simulink将顶级模型加载到每个MATLAB worker上。
从命令行或Simulink编辑器代码透视图构建模型:
命令行——例如,使用
slbuild
.生成过程在“命令窗口”中显示生成日志消息。Simulink Editor Code透视图——单击构建按钮。构建过程在诊断查看器中显示构建日志消息。
如果是并行计算工具箱的并行首选项自动创建并行池时,自动启动MATLAB工作者的并行池。有关更多信息,请参见指定并行首选项(并行计算工具箱).
如果在构建模型时MATLAB工作线程的并行池没有运行,MATLAB会使用默认的集群配置文件自动打开一个并行工作线程池。要更改工作集群的默认行为,可以修改集群配置文件的属性。如果您没有使用并行首选项,则默认配置文件为
当地的
.使用并行首选项控制并行行为,包括扩展到集群、自动创建池和首选工作人员数量。有关更多信息,请参见发现集群并使用集群概要文件(并行计算工具箱).有关并行计算的更多一般信息,请参见运行MATLAB函数与自动并行支持(并行计算工具箱).
监控参照模型的并行构建
通过“生成状态”窗口,您可以:
查看模型层次结构的整体构建进度。
查看模型层次结构中各个模型的构建状态。
取消并行构建过程。
请注意
“构建状态”窗口只支持模型层次结构的并行构建。不要将“生成状态”窗口用于串行生成。
要打开“构建状态”窗口,使用以下行命令之一:
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