主要内容

在并行池上使用高数组

如果您有并行计算工具箱™,您可以在本地MATLAB中使用高数组®会话或本地并行池。如果有的话,还可以在集群上运行高数组计算MATLAB并行服务器安装。本例使用机器上本地集群中的工作线程。您可以在本地开发代码,然后进行扩展,以利用并行计算工具箱和提供的功能MATLAB并行服务器不需要重写算法。另请参阅使用高阵列和数据存储的大数据工作流

创建一个数据存储并将其转换为一个高表。

数据存储(“airlinesmall.csv”);Varnames = {“ArrDelay”“DepDelay”};ds。SelectedVariableNames = varnames;ds。TreatAsMissing =“NA”

如果已安装并行计算工具箱,则在使用函数,MATLAB自动启动并行池的工作者,除非你关闭默认的并行池首选项。默认集群在您的机器上使用本地工作者。

请注意

如果您想关闭自动打开并行池的功能,请更改并行首选项。如果你关掉自动创建并行池选项,则必须显式启动池函数将其用于并行处理。看到指定你的并行偏好

如果您有并行计算工具箱,您可以运行与MATLAB相同的代码高桌的例子并自动在本地机器的worker上并行执行它。

制作一张高桌子tt从数据存储。

Tt =高(ds)
使用“本地”配置文件启动并行池(parpool)…连接4个工人。tt = M×2 tall table ArrDelay DepDelay ________ ________ 8 12 8 1 21 20 13 12 4 -1 59 63 3 -2 11 -1::::

显示显示行数,,目前尚不清楚。是一个占位符,直到计算完成。

提取到达延迟ArrDelay从高高的桌子上。此操作将创建一个新的tall数组变量以用于后续计算。

a = tt.ArrDelay;

您可以在tall数组上指定一系列操作,这些操作在调用之前不会执行收集.这样做可以批处理可能需要很长时间的命令。例如,计算到达延迟的均值和标准差。使用这些值构建与平均值相差1个标准偏差内的延迟的上限和下限阈值。

M = mean(a,“omitnan”);S = std(a,“omitnan”);One_sigma_bounds = [m-s m m+s];

使用收集计算one_sigma_bounds,并将答案带入记忆。

Sig1 = gather(one_sigma_bounds)
使用并行池“本地”评估tall表达式:-通过1 / 1:在4.5秒内完成评估在6.3秒内完成sig1 = -23.4572 7.1201 37.6975

可以指定多个输入和输出收集如果你想同时评估几件事。这样做比打电话要快收集分别在每个高数组上。以计算最小和最大到达延迟为例。

[max_delay, min_delay] = collect (max(a),min(a))
Max_delay = 1014 min_delay = -64

如果希望在串行中开发,而不使用本地工作者或指定的集群,请输入以下命令。

mapreduce (0);
如果你使用mapreduce如果要在创建高数组后更改执行环境,则高数组无效,必须重新创建它。要再次使用本地工作者或指定的集群,输入以下命令。
mapreduce (gcp);

请注意

使用高数组开发算法的好处之一是只需要编写一次代码。您可以在本地开发代码,然后使用mapreduce扩展到一个集群,而不需要重写算法。有关示例,请参见在Spark支持的Hadoop集群中使用Tall array

另请参阅

|||||

相关的例子

更多关于