万博1manbetxSimulink.data.dictionary.cleanupWorkerCache
使用数据字典进行并行模拟后恢复默认值
语法
万博1manbetxSimulink.data.dictionary.cleanupWorkerCache
描述
万博1manbetxSimulink.data.dictionary.cleanupWorkerCache
在完成链接到数据字典的模型的并行模拟之后,恢复默认设置。使用此函数spmd
块,在完成并行模拟后使用parfor
控件更改的默认设置万博1manbetxSimulink.data.dictionary.setupWorkerCache
函数。
在对链接到数据字典的模型进行并行模拟时,您可以允许每个工作者独立于其他工作者访问和修改字典中的数据。这个函数万博1manbetxSimulink.data.dictionary.setupWorkerCache
授予每个工作者一个惟一的字典缓存,以允许对数据和函数的独立访问万博1manbetxSimulink.data.dictionary.cleanupWorkerCache
将缓存设置恢复到默认值。
方法执行并行模拟,必须具有并行计算工具箱™许可证parfor
块。
例子
基于并行仿真的扫变控制
使用并行模拟来扫描变量控制(a万博1manbetx仿真软件。参数
对象,其值影响对象的可变条件万博1manbetx仿真软件。变体
对象)存储在数据字典中,请使用此代码作为模板。更改模型、数据字典和变量控件的名称和值,以匹配您的应用程序。
若要扫描用于设置块参数的块参数值或工作区变量的值,请使用万博1manbetx仿真软件。SimulationInput
对象,而不是到数据字典的编程接口。看到优化、估计和扫描块参数值.
必须拥有并行计算工具箱许可证才能执行并行模拟。
为方便起见,定义模型和数据字典的名称。模型=“mySweepMdl”;dd =“mySweepDD.sldd”;定义变量控件的扫描值CtrlValues = [1 2 3 4];为并行池中的每个worker分配一个独立的数据字典。这样他们就可以不受干扰地使用数据。spmd万博1manbetxSimulink.data.dictionary.setupWorkerCache结束确定要模拟的次数numberOfSims =长度(CtrlValues);准备一个非分布式数组来包含模拟输出。simOut =细胞(1、numberOfSims);parfor指数= 1:numberOfSims创建对象与字典数据交互。您必须为parfor循环的每次迭代创建这些对象。dictObj = 万博1manbetxSimulink.data.dictionary.open (dd);sectObj = getSection (dictObj,设计数据的);entryObj = getEntry (sectObj,“模式”);假设MODE是一个Simulink。万博1manbetx参数object stored in the data dictionary%修改“MODE”的值temp = getValue (entryObj);temp.Value = CtrlValues(指数);setValue (entryObj、临时);模拟并将模拟输出存储在非分布式数组中simOut{指数}= sim(模型);每个worker必须丢弃对数据字典和的所有更改%在使用parfor循环的互操作完成后关闭字典discardChanges (dictObj);关闭(dictObj);结束恢复由函数更改的默认设置% 万博1manbetxSimulink.data.dictionary.setupWorkerCache在调用cleanupWorkerCache之前,关闭模型spmdbdclose Simulin万博1manbetxk.data.dictionary.cleanupWorkerCache(模型)结束
请注意
如果数据字典是打开的,则不能使用该命令万博1manbetxSimulink.data.dictionary.cleanupWorkerCache
.要识别开放数据字典,请使用万博1manbetxSimulink.data.dictionary.getOpenDictionaryPaths
.
另请参阅
万博1manbetxSimulink.data.dictionary.closeAll
|万博1manbetxSimulink.data.dictionary.getOpenDictionaryPaths
|万博1manbetxSimulink.data.dictionary.setupWorkerCache
|parfor
|spmd
主题
- 以编程方式将数据存储在字典中
- 什么是数据字典?
- 在并行池上运行代码(并行计算工具箱)