图片缩略图

PARFOR进度监视器(进度条)v4

version 2.0.4 (53 KB) by Frerk萨克森
进程监控的matlab parfor(平行)回路与估计的剩余时间

1.5 k下载

更新05年9月2019年

从GitHub

在GitHub上查看许可证

一个非常资源高效的Matlab类,用于在' parfor '循环期间显示每个worker的剩余时间和可选进度。
它支持万博1manbetx分布式工作池(即不只是在本地池上工作)。

用法:
% 'numIterations'是一个整数,表示循环中迭代的总数。
%您可以随意将此值增加到更高,并看到其他进度监视器失败。
numIterations = 100000;

%然后构造一个ParforProgressbar对象:
ppm = ParforProgressbar (numIterations);

parfor i = 1:numIterations
做一些并行计算
暂停(100 / numIterations);
%增量计数器跟踪进度
ppm.increment ();
结束

%在parfor循环完成时删除进程句柄(否则持续更新进程的计时器可能不会停止)。
删除(ppm);

可选参数:
ppm = ParforProgressbar(numIterations)构造一个ParforProgressbar对象。
“numIterations”是一个整数,其总数为
parfor循环中的迭代。

ppm = ParforProgressbar(___, 'showWorkerProgress', true)将显示
所有工人的进度(默认为false)。

ppm = ParforProgressbar(___, 'progressBarUpdatePeriod', 1.5)将
每1.5秒更新进度条(默认为1.0秒)。

ppm = ParforProgressbar(___, 'title', 'my fancy title')将
在进度条上显示“我的花哨标题”。

ppm = ParforProgressbar(___, 'parpool', 'local')将
使用“local”配置文件启动并行池(parpool)。

ppm = ParforProgressbar(___, 'parpool', {profilename, poolsize, Name, Value})
将启动并行池(parpool)使用profilename配置文件
poolsize worker和函数parpool支持的任何名称值对。万博1manbetx

好处:
1.这是第一个parfor进度监视器,也显示剩余时间。
2.这是第一个同时显示每个工人进度的parfor进度监视器。
3.它可以从非常少的迭代次数扩展到占用空间非常小的任意高的迭代次数。

缺点:
1.它确实减慢了计算速度。多少钱?这取决于你更新进度条的频率(默认每1.0秒更新一次-但这是一个你可以调整的参数)。
更新我电脑上的进度条平均需要40毫秒。例如,其中一个x工人更新进度条(默认每秒钟),每秒钟花费额外的40ms = 4%。
但是您有x-1的worker,它们根本不会被延迟(调用increment甚至对数百万次迭代的影响都可以忽略不计)。
2.它需要仪表控制工具箱

影响60135 - parfor进度-监控-进度条- v3:
1.使用[progressbar] (https://de.mathworks.com/matlabcentral/fileexchange/6922-progressbar)与它的漂亮绘图的剩余时间。
2.完整的matlab实现,没有Java。
3.每次增量,Dylan基于java的实现都通过tcp连接到服务器,并立即关闭连接,而不发送任何数据。
服务器仅根据已建立的连接增加计数器。
这是相当快的,但对于非常短的循环周期(如上面),它会导致太多的连接。
最初的ParforProgMonv3通过让用户手动选择步长来解决这个问题。然而,这是简单的和非直观的。
这个更新自动计算步长,因此即使对于非常短的循环周期,也能保持非常快的执行时间。
4.代替tcp套接字,我们使用udp套接字,它是建立在建设和不打开/关闭在每个循环周期。
5.为了跟踪每个工作进程,每个工作进程通过udp发送自己的进程到服务器。
6.小的界面改变:我并不关心进度条的窗口标题。这现在是一个可选参数,现在也被matlab的输入解析器适当地监控。

引用作为

Frerk萨克森(2021)。PARFOR进度监视器(进度条)v4GitHub (https://github.com/fsaxen/ParforProgMon)。检索

MATLAB版本兼容性
创建R2018b
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!
要查看或报告这个GitHub插件中的问题,请访问GitHub库
要查看或报告这个GitHub插件中的问题,请访问GitHub库