主要内容

金宝appSimulink.sdi.cleanupWorkerResources

清理人员存储库

描述

例子

金宝appSimulink.sdi.cleanupWorkerResources删除冗余数据从每个并行工人所使用的库文件模拟数据检查员。工人池运行时调用这个函数。仿真数据检查自动清理库文件当你关闭工作池。

例子

全部折叠

这个例子执行并行模型的模拟slexAircraftExample用不同的输入滤波器时间常数和显示多种方式访问数据使用模拟数据检查员编程接口。

设置

首先确保仿真数据督察是空的和并行计算工具箱支持配置为自动导入创建运行在本地工人。金宝app然后,创建一个向量在每个模拟滤波器参数值使用。

%确保检查员仿真数据为空,和PCT的支持金宝app%启用。金宝appSimulink.sdi。明确Simu金宝applink.sdi.enablePC金宝appTSupport (“本地”)%定义Ts值Ts_vals = (0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1];

初始化并行的工作

使用gcp创建一个本地工人池运行并行模拟如果你不已经有一个了。在一个spmd代码块,加载slexAircraftExample模型和选择信号记录。为了避免数据并发性问题sim卡parfor,创建一个临时目录中为每个工人在模拟使用。

p =质量;
开始平行池(parpool)使用“本地”概要文件…连接到4工人。
spmd%加载系统并选择信号记录load_system (“slexAircraftExample”)S金宝appimulink.sdi.markSignalForStreaming (“slexAircraftExample /试点”,1“上”)S金宝appimulink.sdi.markSignalForStreaming (“slexAircraftExample /飞机动力学模型”4“上”)%每个工人上创建临时目录workDir = pwd;目录(workDir) tempDir = tempname;mkdir (tempDir) cd (tempDir)结束

运行并行模拟

使用parfor七个模拟并行运行。选择的值Ts对于每一个仿真,和修改的值Ts在模型中工作区。然后,运行仿真,建立数组金宝appSimulink.sdi.WorkerRun对象来访问数据和仿真数据检查员。后parfor循环,使用另一个spmd段去除来自工人的临时目录。

parfor指数= 1:7Ts %选择值Ts_val = Ts_vals(指数);%改变滤波器时间常数和模拟modelWorkspace = get_param (“slexAircraftExample”,“modelworkspace”);modelWorkspace.assignin (“t”Ts_val) sim卡(“slexAircraftExample”)%为每个模拟创建一个工人运行workerRun(指数)= Simu金宝applink.sdi.WorkerRun.getLatest结束spmd%删除临时目录cd (workDir)删除文件夹(tempDir,“年代”)rmpath (workDir)结束

从并行仿真得到的数据集对象输出

getDataset将数据从一个方法WorkerRun成一个数据集所以你可以很容易地后处理对象。

ds (7) =金宝app Simulink.SimulationData.Dataset;a = 1:7 ds (a) = workerRun .getDataset(一个);结束ds (1)
ans = 金宝appSimulink.SimulationData。数据集'' with 2 elements Name BlockPath __________ ________________________________________ 1 [1x1 Signal] alpha, rad ...rcraftExample/Aircraft Dynamics Model 2 [1x1 Signal] Stick slexAircraftExample/Pilot - Use braces { } to access, modify, or add elements using index.

从并行仿真得到DatasetRef对象输出

对于大数据工作流,使用getDatasetRef方法参考相关的数据WorkerRun

b = 1:7 datasetRef (b) = workerRun (b) .getDatasetRef;结束datasetRef (1)
ans = DatasetRef属性:名称:“运行3:slexAircraftExample”运行:[1×1 Simulink.sdi。金宝app运行]numElements: 2

督察过程并行模拟数据仿真数据

您还可以创建本地运行对象来分析和可视化数据使用仿真数据检查器API。这个示例添加一个标签显示为每个运行滤波器时间常数的值。

c = 1:7运行(c) = workerRun .getLocalRun (c);Ts_val_str = num2str (Ts_vals (c));desc = strcat (“Ts = ',Ts_val_str);(c)。描述= desc;(c)。Name = strcat (“slexAircraftExample运行Ts = ',Ts_val_str);结束

清理人员存储库

清理工人所使用的文件释放磁盘空间为其他模拟你想运行在你的工人池中。

金宝appSimulink.sdi.cleanupWorkerResources

版本历史

介绍了R2017b