主要内容

运行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。如果您的应用程序依赖于数据的排列在输出中,你必须根据你自己的需求对数据进行排序。

另请参阅

功能

相关的例子

更多关于