本周文件交换选择

我们最好的用户反馈

时间并行FOR (PARFOR)循环

肖恩他本周的选择是实物票据通过莎拉等等,扎拉内克

我运行了相当数量的计算成本高的操作,并经常使用平行for (parfor)循环来加速它们。这个实用工具让我感兴趣,主要是因为它显示了工作如何在工人之间分配,并提供了工人利用率。

首先,我将确保一个并行池正在使用gcp ()或“获取当前池”。这打开了parfor循环分配迭代的无头MATLAB进程。

Pool = GCP
pool = pool with properties: Connected: true NumWorkers: 2 Cluster: local AttachedFiles: {} IdleTimeout: 90 minute(s) (89 minutes remaining) SpmdEnabled: true

我们将用一个随机暂停的循环做一个简单的例子。暂停是一个操作的代理,该操作所花费的时间是变化的且不可预测的。

N = 50;p = Par(n);生成Par定时器parforii = 1:n parc .tic;%开始计时器暂停(兰迪(5))暂停最多5秒p(ii) = Par.toc;测量运行时间%结束停止(p);完成百分比情节(p);

parfor循环很好地在两个worker之间分配了计算。利用率更高的工作人员只有一个额外的迭代。

这里还有一些其他巧妙的技巧,是我通过查看代码发现的。

  1. 如果你在每个迭代的时间点上右键单击坐标轴,它会给你一个上下文菜单来选择比例。
  2. 由于Par类继承自句柄,因此可以获得那些可见的方法。莎拉把这些隐藏起来方法()通过隐藏他们的签名。
  3. Sarah还提供了关于该实用程序功能的完整文档以及示例。

评论

试一试,让我们知道你的想法在这里或者留下评论莎拉。




发布与MATLAB®R2014a

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。