主要内容

收集

转移分布数组,复合数组或gpuArray本地工作区

描述

例子

X =收集(一个)数组可以操作以下数据:

  • 在一个gpuArray:转移的元素一个从GPU到本地工作区和分配X

  • 在一个分布式数组,外部spmd声明:聚集在一起的元素一个从多个工人到本地工作区和分配X

  • codistributed数组,里面一个spmd语句或沟通工作:收集在一起的元素一个复制成X在每一个工人。

你可以叫收集其他数据类型,如高数组(见收集(高))。如果收集的数据类型不支持,那么万博1manbetx收集没有效果。

收集GPU阵列或分布式阵列可以是昂贵的,通常是没有必要的,除非你需要使用你的结果与功能不支持这些类型的数组。万博1manbetx函数支持的更多信息,请参阅万博1manbetx运行在GPU MATLAB函数运行MATLAB函数与分布式阵列

X =收集(gpuArray (X)),X =收集(分布式(X)),或X =收集(codistributed (X))返回原始数组X

(X1, X2,…,Xn] = gather(A1,A2,...,An)收集多个数组A1, A2,…,一个到相应的输出X1, X2,…, Xn。输入参数和输出参数的数量必须匹配。

例子

X =收集(Cd、目的地)转换一个codistributed数组Cd一个变体数组X这样,所有的元素都包含在指定的工人目的地,X是一个0-by-0空所有其他工人的两倍。

(X1, X2,…,Xn] = gather(Cd1,Cd2,...,Cdn,destination)收集codistributed数组两张cd,,…, Cdn到相应的输出X1, X2,…, Xn,所有元素所指定的工人目的地。输入参数和输出参数的数量必须匹配。

例子

X =收集(Cp)收集的所有元素复合阵列Cp从多个工人到本地工作区,并为它们指定单元阵列X,细胞的数量X依赖于工人数量引用的Cp(因为R2023a)

(X1, X2,…,Xn] = gather(Cp1,Cp2,...,Cpn)收集复合阵列Cp1, Cp2…,尼泊尔共产党到相应细胞数组X1, X2,…, Xn。输入参数和输出参数的数量必须匹配。(因为R2023a)

例子

全部折叠

收集MATLAB GPU操作的结果®工作区。

G = gpuArray (rand (1024 1));F = sqrt (G);%的输入和输出都是gpuArrayW =收集(G);%返回数组的工作区
类属性名称大小字节F 1024 x1 8192 gpuArray G 1024 x1 8192 gpuArray W 1024 x1 8192双

从分布式收集所有的元素数组D到客户端。

n = 10;parpool (“过程”4);D =分布式(魔法(n));%数组分发给工人M =聚(D)%数组返回给客户端

分发幻方在你的工人,然后收集整个矩阵到每个职工,然后到客户端。这段代码的结果相当于M =魔法(n)在所有工人和客户机。

n = 10;parpool (“过程”4);spmdCd = codistributed(魔法(n));M =收集(Cd);%收集所有元素所有工人结束S =收集(Cd)%收集元素客户机

收集的所有元素Cd到工人,操作无法执行分布式阵列。

n = 10;spmdCd = codistributed(魔法(n));=收集(Cd, 1);如果spmdIndex = = 1%的特点和幻方:characteristicSum = (1: n ^ 2) / n;%确保对角的金额是相等的%和特点:areDiagonalsEqual = isequal(跟踪(出),跟踪(flipud ()), characteristicSum)结束结束
工作1:areDiagonalsEqual =逻辑1

自从R2023a

收集所有的元素的复合阵列Cp存储在平行工人到客户端。

使用一个spmd语句来创建一个工人和一个幻方复合数组Cp在客户端。

n = 10 p = parpool (“过程”4);spmdCp =魔法(n);结束

收集结果存储在客户端上你的工人。

结果=收集(Cp)
结果= 1×4单元阵列{10×10双}{10×10双}{10×10双}{10×10双}

输入参数

全部折叠

数组来收集,指定为一个gpuArray,分布式数组,或codistributed数组中。

Codistributed收集数组,指定为一个codistributed数组中。

自从R2023a

指定为一个复合阵列收集复合数组中。

提示

请注意,收集组装codistributed或分布式阵列的工作区中所有的工人在执行时,或在MATLAB端,分别,但不是。如果您使用的是收集在一个spmd声明中聚集通过其相应的数组可以在客户端访问复合对象;看到工人变量的访问与复合材料。如果您正在运行收集在沟通的工作,你可以返回数组来收集客户端作为一个输出参数的任务。

随着收集函数需要所有的工人之间的沟通,你不能从所有的工人收集数据到一个工人通过将函数在一个条件语句等如果spmdIndex = = 1

版本历史

介绍了R2006b

全部展开