主要内容

运行mapreduce在平行水池上

开始平行池

如果您已经安装了并行计算工具箱™,则执行mapreduce可以在默认概要文件指定的集群上打开并行池,以用作执行环境。

您可以设置并行首选项,使池不会自动打开。在这种情况下,如果需要,必须显式启动一个池mapreduce将它用于并行化它的工作。看到指定并行首选项

例如,下面的概念性代码启动一个池,然后一段时间后将该开放池用于mapreduce配置。

p = parpool (“本地”n);= mapreduce先生(p);outds = mapreduce (tds、@MeanDistMapFun @MeanDistReduceFun,先生)

请注意

mapreduce可以在任何支持并行池的集群上运行。万博1manbetx本主题中的示例使用本地集群,它适用于所有并行计算工具箱安装。

比较平行mapreduce

下面的示例从航空公司数据的数据存储中计算平均到达延迟。首先,它运行mapreduce在MATLAB客户端会话中,然后在本地集群上并行运行。的mapreduce函数显式地控制执行环境。

首先在本地集群上启动一个并行池。

p = parpool (“本地”4);
使用“local”配置文件启动并行池(parpool)…连接到4个工人。

创建两个MapReducer对象,用于指定不同的执行环境mapreduce

inMatlab = mapreduce (0);inPool = mapreduce (p);

创建和预览数据存储。本例中使用的数据集在matlabroot/工具箱/ matlab /演示

ds =数据存储(“airlinesmall.csv”,“TreatAsMissing”,“NA”,“SelectedVariableNames”,“ArrDelay”,“ReadSize”, 1000);预览(ds)
ArrDelay ________ 8 8 21 13 4 59 3 11

接下来,运行mapreduceMATLAB计算®客户端会话。map和reduce函数可以在matlabroot/工具箱/ matlab /演示

meanDelay = mapreduce (ds, @meanArrivalDelayMapper、@meanArrivalDelayReducer inMatlab);
******************************** * MAPREDUCE的进展  * ******************************** 地图地图10%减少0% 20% 0%减少0%减少0%地图30%减少0% 40%减少0%地图50%减少0% 60%减少0%地图地图80%减少0% 90% 70%减少0%减少0%地图100%减少100%
readall (meanDelay)
键值  __________________ ________ ' MeanArrivalDelay ' [7.1201]

然后,在当前并行池上运行计算。注意,输出文本表示并行mapreduce

meanDelay = mapreduce (ds, @meanArrivalDelayMapper、@meanArrivalDelayReducer inPool);
并行执行mapreduce的平行池 : ******************************** * MAPREDUCE的进展  * ******************************** 地图地图100%减少50% 100% 0%减少0%减少100%
readall (meanDelay)
键值  __________________ ________ ' MeanArrivalDelay ' [7.1201]

对于这个相对较小的数据集,使用并行池提高性能的可能性不大。这个例子展示了运行的机制mapreduce在一个平行的池子上。随着数据集的增长,或者map和reduce函数本身的计算强度变得更大,与运行相比,您可能希望看到并行池的性能得到改善mapreduce在MATLAB客户端会话中。

请注意

当平行mapreduce在集群中,与运行时相比,输出中的键值对的顺序是不同的mapreduce在MATLAB。如果您的应用程序依赖于输出中的数据安排,则必须根据您自己的需求对数据进行排序。

另请参阅

功能

相关的例子

更多关于