并行与分布式索引查找当地的小数组

3视图(30天)
你好,我想要使用并行计算工具箱,但我缺少一种使用分布式阵列作为数组索引一个小地方。< http://de.mathworks.com/help/distcomp/working-with-codistributed-arrays.html > bqjuynt文档只讨论索引为分布式数组。我看到了相反的都有自己的缺陷,但我认为这应该是很可能的。
在我看来,与(non-boolean)分布式索引数组在当地的一个必须返回一个分布式阵列。它不导致任何数据传输开销,和结果的维度是已知。
有(更好的)方式做这种并行索引查找呢?我还缺少一种为获得就地支持定义禁止入内的行为。万博1manbetx
接下来是一个示例代码我写的问题。第一个spmd块是我希望MATLAB的工作方式,第二个是我的丑陋的解决方案。提示:所有性能数字都从我的桌面,你想看到结果集群?
parpool ();
%任何随机指数数据,这里(10000 x 10000)值在1到10之间。
=兰德(10000,“分布式”);
=地板(* 10)+ 1;
%的查找表。
b =兰德(10,1);
抽搐;spmd
%运行时间是3.892589秒。
%的c1 [1 x n]组合,每个(10000 x 10000)。
%这种行为在我看来。
c1 = b (a);
结束;toc
抽搐;spmd
%重建相同的默认设置是建立。
codist = codistributor1d (2, codistributor1d。unsetPartition、大小(a));
%运行时间是0.693986秒。
%的c2 (10000 x 10000)分布。
%的解决方法,但是非常丑陋....
c2 = codistributed.build (b (getLocalPart (a)), codist);
结束;toc

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!