文件交换的选择

我们最好的用户提交

创建持久资源并行工人

肖恩本周的选择WorkerObjWrapperMathWorks的并行计算的团队

背景

MATLAB的并行计算工具箱为您提供了MATLAB工人的能力开放游泳池,你可以分配工作与高水平的命令parfor

在这个池与工人交流时,总是会有数据通信的开销。数据越少我们可以传输到工人更好的速度我们会看到改善。这是很困难的在处理大型数组和可以导致低于串行并行计算的。WorkerObjWrapper提供了一个方便的方法使数据持久化一个工人;这可能是大数组,连接数据库或其他的事情,我们需要在每个迭代的parfor循环。

让我们看看它的实际效果

我们要把一些财务数据雅虎使用的连接数据处理工具箱

我有一个列表的证券和相应的字段我想从他们:

%证券和所需的字段证券= {“3”,“PG”,“微软”,“山姆”,“厂商”,“yahoo”,“发生”,“光芒四射”};字段= {“高”,{“低”,“高”},“高”,“高”,{“低”,“高”},“低”,{“低”,“体积”},“低”};

我第一次想要确保有一个开放的平行池(parpool)分配计算。我有一个两个核心的笔记本电脑,所以我将开放两个当地工人通过选择底部的图标桌面的左手边。

我写三个等效函数将价格从雅虎

  • fetchFOR——使用一个正则循环获取价格
  • fetchPARFOR——使用一个并行循环
  • fetchWOWPARFOR——使用并行循环和WorkerObjWrapper使连接在所有工人。

首先,一个检查,以确保他们都做同样的事情:

ff = fetchFOR(证券、字段);fp = fetchPARFOR(证券、字段);弗兰克-威廉姆斯= fetchWOWPARFOR(证券、字段);断言(isequal (ff、fp fw));%如果他们不等于错误

自主张通过,这意味着函数返回相同的结果,我们现在可以做计时。我将使用时间

t = 0 (3,1);%测量时间时间t (1) = (@ () fetchFOR(证券、字段),1);时间t (2) = (@ () fetchPARFOR(证券、字段),1);时间t (3) = (@ () fetchWOWPARFOR(证券、字段),1);%显示结果流(' %。3fs %s\n't (1),“对”t (2),“parfor”t (3),“与WorkerObjWrapper parfor”)
8.631 4.255 5.991 s parfor年代parfor WorkerObjWrapper

所以我们可以看到,创建一旦每个工人在平行的连接池,然后使用parfor给我们最好的计算时间。

评论

你有处理大数据或多次重复这一过程并行计算可以帮助在哪里?我很想听到你的经历和你所面临的挑战。

试一试,让我们知道你的想法在这里或者离开评论为我们的团队并行计算。




发表与MATLAB®R2013b

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。