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
接下来,运行mapreduce
MATLAB计算®客户端会话。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。如果您的应用程序依赖于输出中的数据安排,则必须根据您自己的需求对数据进行排序。