万博1manbetxSimulink.sdi.WorkerRun.getLatest
类:万博1manbetxSimulink.sdi.WorkerRun
包:万博1manbetxSimulink.sdi
为最近的运行创建工作运行
语法
runnobj =万博1manbetx Simulink.sdi.WorkerRun.getLatest
描述
创建一个runObj
= 万博1manbetxSimulink.sdi.WorkerRun.getLatest万博1manbetxSimulink.sdi.WorkerRun
对象用于并行计算工具箱™工作线程上的最新运行。
输出参数
runObj
—Local S万博1manbetximulink.sdi.Run对象
万博1manbetxSimulink.sdi.WorkerRun对象
万博1manbetxSimulink.sdi.WorkerRun
对象访问来自最新并行计算工具箱工作线程运行的数据。
例子
从并行仿真中访问数据
这个例子执行模型的并行模拟slexAircraftExample
使用不同的输入过滤器时间常数,并展示了使用模拟数据检查器编程接口访问数据的几种方法。
设置
首先确保“模拟数据检查器”为空,并且“并行计算工具箱”支持配置为自动导入在本地工作者上创建的运行。万博1manbetx然后,创建在每个模拟中使用的过滤器参数值向量。
确保模拟数据检查器为空,PCT支持为万博1manbetx%启用。万博1manbetxSimulink.sdi.clear Simulink.sdi万博1manbetx.enablePCTSupport (“本地”)定义Ts值Ts_vals = [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1];
初始化并行工作者
如果您还没有本地工作者池,可以使用gcp创建一个本地工作者池来运行并行模拟。在一个spmd
代码块,加载slexAircraftExample
建模并选择要记录的信号。避免数据并发性问题使用sim卡
在parfor
,为每个工作人员创建一个临时目录,以便在模拟期间使用。
P = gcp;
使用“本地”配置文件启动并行池(parpool)…连接4个工人。
spmd加载系统并选择要记录的信号load_system (“slexAircraftExample”) 万博1manbetxSimulink.sdi.markSignalForStreaming (“slexAircraftExample /试点”, 1“上”) 万博1manbetxSimulink.sdi.markSignalForStreaming ('slexAircraftExample/飞机动力学模型'4“上”)在每个worker上创建临时目录workDir = pwd;addpath(workDir) tempDir = tempname;mkdir (tempDir) cd (tempDir)结束
运行并行模拟
使用parfor
同时进行七个模拟。选择的值Ts
对于每个模拟,并修改值Ts
在模型工作区中。然后,运行模拟并构建数组万博1manbetxSimulink.sdi.WorkerRun
对象使用模拟数据检查器访问数据。后parfor
循环,使用另一个spmd
段从工作目录中删除临时目录。
parfor指数= 1:7选择Ts的值Ts_val = Ts_vals(索引);更改过滤器时间常数并模拟modelWorkspace = get_param(“slexAircraftExample”,“modelworkspace”);modelWorkspace.assignin (“t”Ts_val) sim卡(“slexAircraftExample”)为每个模拟创建一个工作运行workerRun(index) = 万博1manbetxSimulink.sdi.WorkerRun.getLatest结束spmd移除临时目录cd (workDir)删除文件夹(tempDir,“年代”) rmpath (workDir)结束
从并行模拟输出中获取数据集对象
的getDataset
方法将数据从WorkerRun
成一个数据集
对象,以便您可以轻松地进行后期处理。
ds(7) = 万博1manbetxSimulink.SimulationData.Dataset;为a = 1:7 ds(a) = workerRun(a).getDataset;结束ds (1)
ans Bl万博1manbetxockPath = Simulink.SimulationData.Dataset”2元素名称 __________ ________________________________________ 1 (1 x1信号)α,rad……rcraftExample/Aircraft Dynamics Model 2 [1x1 Signal] Stick slexAircraftExample/Pilot -使用大括号{}访问、修改或添加使用索引的元素。
从并行仿真输出中获取DatasetRef对象
对于大数据工作流,使用getDatasetRef
方法引用与WorkerRun
.
为b = 1:7 datasetRef(b) = workerRun(b).getDatasetRef;结束datasetRef (1)
ans = datasetef与属性:名称:'运行3:slexAircraftExample'运行:[1×1 Simulink.sdi。万博1manbetx执行命令numElements: 2
在仿真数据检查器中处理并行仿真数据
您也可以创建本地运行
对象,使用模拟数据检查器API分析和可视化您的数据。此示例添加一个标记,指示每次运行的过滤器时间常数值。
为c = 1:7运行(c) = workerRun(c).getLocalRun;Ts_val_str = num2str(Ts_vals(c));说明:strcat('Ts = ', Ts_val_str);(c)。Description = desc;(c)。Name = strcat('slexAircraftExample运行Ts=', Ts_val_str);结束
清理工作存储库
清理工作人员使用的文件,为希望在工作人员池上运行的其他模拟释放磁盘空间。
万博1manbetxSimulink.sdi.cleanupWorkerResources
版本历史
在R2017b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。