运行mapreduce
在一个平行的池
开始平行池
如果你安装了并行计算工具箱™,执行的mapreduce
可以打开一个并行集群由你指定默认的配置池,用于执行环境。
你可以设置并行偏好这一池并不会自动打开。在这种情况下,您必须显式地如果你想启动一个池mapreduce
使用它的并行工作。看到指定您的平行的偏好。
例如,下面的概念上的代码开始池,一段时间后使用,开放池mapreduce
配置。
p = parpool (“本地”n);= mapreduce先生(p);outds = mapreduce (tds、@MeanDistMapFun @MeanDistReduceFun,先生)
请注意
mapreduce
可以运行在任何支持的集群并行池。金宝app这一主题中的示例使用本地集群,这适用于所有并行计算工具箱安装。
比较平行mapreduce
下面的示例计算航空公司的延误意味着从一个数据存储的数据。首先,它运行mapreduce
在MATLAB客户端会话,然后并行地运行在本地集群。的mapreduce
函数显式地控制执行环境。
首先启动一个平行池在本地集群。
p = parpool (“本地”4);
开始平行池(parpool)使用“本地”概要文件…连接到4工人。
创建两个mapreduce对象指定不同的执行环境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%地图地图地图70%减少0% 80% 60%减少0%减少0%地图90%减少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。如果您的应用程序依赖于数据的排列在输出中,你必须根据你自己的需求对数据进行排序。