主要内容

收集

分布式阵列或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,...,,Xn)收集多个数组A1, A2,…,,到相应的输出X1, X2,…, Xn。输入参数和输出参数的数量必须匹配。

例子

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

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

例子

全部折叠

收集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);spmdC = codistributed(魔法(n));M =收集(C)%收集所有元素所有工人结束S =收集(C)%收集元素客户机

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

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

输入参数

全部折叠

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

提示

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

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

版本历史

介绍了R2006b