使用高阵列并行池
如果你有并行计算工具箱™,你可以在你当地的MATLAB使用高数组®会话,或在本地平行池。您还可以运行计算集群上如果你有高的数组MATLAB并行服务器™安装。下面的例子使用了工人在当地集群在您的机器上。你可以在本地开发代码,然后扩大,利用并行计算工具箱提供的功能MATLAB并行服务器而无需重写你的算法。另请参阅大数据工作流使用高阵列和数据存储。
创建一个数据存储,并将它转换成一个高大的表。
ds =数据存储(“airlinesmall.csv”);varnames = {“ArrDelay”,“DepDelay”};ds。SelectedVariableNames = varnames;ds。TreatAsMissing =“NA”;
如果你安装了并行计算工具箱,当您使用高
MATLAB函数,将自动启动一个平行的工人,除非你关闭默认平行池偏好。默认集群使用当地工人在您的机器上。
如果你有并行计算工具箱,您可以运行相同的代码是MATLAB高表的例子并自动并行执行它在本地机器的工人。
创建一个高表tt
从数据存储中。
tt =高(ds)
开始平行池(parpool)使用过程的概要文件…连接到4工人。tt = M×2高表ArrDelay DepDelay说8 12 8 1 21 20 13 12 4 1 59 63 3 2 11 1::::
显示器显示的行数,米
,还不知道。米
是一个占位符,直到计算完成。
提取的到来推迟ArrDelay
从高表。此操作将创建一个新的高数组变量用于后续计算。
一个= tt.ArrDelay;
你可以指定一系列操作高数组,不执行,直到你的电话收集
。这样做使您能够批处理命令,可能需要很长时间。例如,计算平均值和标准偏差的到来。使用这些值来构造上、下阈值内的延迟1个标准差的意思。
m =意味着(,“omitnan”);s =性病(,“omitnan”);one_sigma_bounds = (m m m + s);
使用收集
计算one_sigma_bounds
,并将答案到内存中。
sig1 =收集(one_sigma_bounds)
评估高表达式使用并行池“过程”:通过1对1:在4.5秒完成评估在6.3秒完成sig1 = -23.4572 7.1201 37.6975
您可以指定多个输入和输出收集
如果你想要评估几件事情。这样做比打电话要快收集
分别在每个高数组。作为一个例子,计算最小和最大延迟到来。
[max_delay, min_delay] =收集(max ()、min ())
max_delay = 1014 min_delay = -64
如果你想发展序列,而不是使用本地工人或指定集群,输入下面的命令。
mapreduce (0);
mapreduce
改变后的执行环境创建一个高的数组,然后高数组是无效的,你必须重新创建它。再次使用当地工人或指定集群,输入下面的命令。mapreduce (gcp);
请注意
的一个好处发展与高数组的算法是,你只需要编写的代码一次。你可以在本地开发代码,然后使用mapreduce
集群规模,而无需重写你的算法。例如,看到的火花集群上使用高数组。