MATLAB 帮助中心
本页采用了机器翻译。点击此处可查看最新英文版本。
并行池活动监控程序
自 R2025a 起
使用 ActivityMonitor 监控并收集并行池中工作单元的活动数据。
ActivityMonitor
监控数据包括:
并行构造的类型,例如 parfor、parfeval 和 spmd。
parfor
parfeval
spmd
客户端和工作单元发送和接收的数据量(以字节为单位)。
每个工作单元处理并行代码部分所花费的时间。
您可以使用 results 函数检索监控结果,并在并行池仪表板中查看监控数据。
results
monitor = parallel.pool.ActivityMonitor
monitor = parallel.pool.ActivityMonitor(pool)
monitor = parallel.pool.ActivityMonitor(___,Start=false)
monitor = parallel.pool.ActivityMonitor 创建一个 ActivityMonitor 对象,并开始收集当前并行池上的活动监控数据。如果不存在并行池,parallel.pool.ActivityMonitor 将使用默认配置文件启动一个新的并行池,除非您在并行设置中禁用了自动创建池。
monitor
parallel.pool.ActivityMonitor
要保存监控结果,请使用 results 函数。要停止收集并保存监控结果,请使用 stop 函数。
stop
示例
monitor = parallel.pool.ActivityMonitor(pool) 开始收集由 pool 指定的并行池上的活动监控数据。
pool
monitor = parallel.pool.ActivityMonitor(___,Start=false) 创建一个 ActivityMonitor 对象,但不会开始收集活动监控数据。要开始收集监控数据,请使用 start 函数。
Start=false
start
全部展开
parallel.Pool.ProcessPool
parallel.pool.ClusterPool
并行池,指定为 parallel.Pool.ProcessPool 或 parallel.pool.ClusterPool 对象。
您可以使用交互式或批处理并行池。ActivityMonitor 不支持线程工作单元的并行池。
示例: parpool("Processes");
parpool("Processes");
示例: batch(...,Pool=4);
batch(...,Pool=4);
并行池活动监控程序,以 ActivityMonitor 对象返回。
全部折叠
创建一个 ActivityMonitor 对象,开始收集池监控数据。在默认设置下,如果不存在默认配置文件,parallel.pool.ActivityMonitor 会自动使用默认配置文件启动交互式并行池。
monitor = parallel.pool.ActivityMonitor;
Starting parallel pool (parpool) using the 'Processes' profile ... Connected to parallel pool with 6 workers.
运行一个 parfor 循环来生成随机数,并将它们存储在一个数组中。
data = zeros(1,100); parfor idx = 1:100 data(idx) = rand; end
停止活动监控程序并获取在 parfor 执行期间收集的结果。
monitorResults = stop(monitor);
使用集群配置文件 MyCluster 创建一个并行池。
MyCluster
pool = parpool("MyCluster");
创建一个 ActivityMonitor 对象来收集池的监控数据,但不要立即开始收集数据。
monitor = parallel.pool.ActivityMonitor(pool,Start=false);
使用 ActivityMonitor 对象收集批处理作业的活动监控数据。
编写一个函数,创建一个 ActivityMonitor 对象来收集监控数据,执行并行任务,并收集池监控结果。
function monitorResults = myParallelCode monitor = parallel.pool.ActivityMonitor; f(1:100) = parallel.FevalFuture; for idx = 1:100 f(idx) = parfeval(@(n) real(eig(randn(n))),1,5e2); end maxFuture = afterEach(f,@max,1); wait(maxFuture); monitorResults = stop(monitor); end
使用 myCluster 配置文件将 myParallelCode 函数作为批处理作业运行,然后等待批处理作业完成。
myCluster
myParallelCode
j = batch(@myParallelCode,1,Pool=4,Profile="myCluster"); wait(j);
从已完成的批处理作业中获取监控结果。
out = fetchOutputs(j); monitoringResults = out{1};
ActivityMonitor 不支持并行线程工作单元池。
您可以使用并行池仪表板来收集和查看交互式并行池上的池监控数据。
在 R2025a 中推出
ActivityMonitorResults
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处