最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。

收集

分散配列またはgpuArrayをローカルワークスペースに転送

构文

X =聚集(A)
[X1,X2,...,XN] =聚集(A1,A2,... ,, xn)映射
X =聚集(C,实验室)
[X1,X2,...,XN] =聚集(C1,C2,...,CN,实验室)

说明

X =聚集(A)は,次の配列データを处理できます。

  • gpuArray:一个の要素をGPUからローカルワークスペースに転送し,Xに割り当てます。

  • SPMDステートメントの外にある分散配列:复数のワーカーから一个の要素をローカルワークスペースに收集し,Xに割り当てます。

  • SPMDステートメントまたは通信ジョブの中にある対话型分散配列:一个の要素を收集して,すべてのワーカーのXに复制します。

收集は,高大配列(聚集(高)を参照)など他のデータ型についても呼び出せます。データ型が收集をサポートしていない场合,收集を実行しても效果はありません。

X =聚集(gpuArray(X))X =聚集(分布式(X)),またはX =聚集(codistributed(X))は元の配列Xを返します。

[X1,X2,...,XN] =聚集(A1,A2,... ,, xn)映射は复数の配列A1,A2,... ,,一を收集し,対応する出力X1,X2,...,XNを生成します。入力引数の数と出力引数の数は一致しなければなりません。

X =聚集(C,实验室)は対话型分散配列Cをバリアント配列Xに変换し,ワーカー实验室は全要素を含み,その他すべてのワーカーはXが0行0列の空の双配列となるようにします。

[X1,X2,...,XN] =聚集(C1,C2,...,CN,实验室)は対话型分散配列C1,C2,...,CNを收集して,対応する出力X1,X2,...,XNを生成します。これにはワーカー实验室のすべての要素が含まれます。入力引数の数と出力引数の数は一致しなければなりません。

收集の入力引数が分散配列,対话型分散配列,gpuArrayのいずれでもない场合,出力は入力と同じになります。

すべて折りたたむ

GPU演算の结果をMATLAB®ワークスペースに收集します。

G = gpuArray(兰特(1024,1));F = SQRT(G);%输入和输出均为gpuArrayW =聚集(G);%回阵列的工作区谁是
名称大小字节F级1024x1 108 gpuArrayģ1024x1 108 gpuArrayW¯¯1024x1 8192双

すべての要素を分散配列dからクライアントに收集します。

N = 10;d =分布式(魔(N));%数组分配给工人M =收集(d)%回阵列客户

魔方阵をワーカーに分散し,行列全体を各ワーカーに收集してから,続いてクライアントに收集します。このコードはすべてのワーカーとクライアントでM =魔法(n)的を実行した场合と同じ结果になります。

N = 10;SPMDC = codistributed(魔(N));M =收集(C)%收集到所有工人的所有元素结束S =聚集(C)%聚集元素到客户端

分散配列间では実行できない演算用に,Cの全要素をワーカー1に收集します。

N = 10;SPMDC = codistributed(魔(N));OUT =聚集(C,1);如果labindex == 1此幻方%和特点:characteristicSum =总和(1:N ^ 2)/ N;%确保对角和都等于%和特点:areDiagonalsEqual = ISEQUAL...(跟踪(出),跟踪(flipud(出)),characteristicSum)结束结束
实验1:areDiagonalsEqual = 1

ヒント

收集は,実行される全ワーカーのワークスペースに対话型分散配列をまとめるか,またはMATLABクライアントに分散配列を集めますが,両方は行わないことに注意してください。SPMDステートメント内で收集を使用する场合,收集された配列にクライアント上でアクセスするには,それに対応する综合オブジェクトを使用します。复合を使用するワーカー変数へのアクセスを参照してください。收集を通信ジョブ内で実行する场合,收集された配列はタスクからの出力引数としてクライアントに返すことができます。

关数收集にはすべてのワーカー间での通信が必要であるため,如果labindex == 1などの条件付きステートメントの内部にこの关数を置いて,すべてのワーカーからのデータを単一のワーカーに收集することはできません。

R2006bで导入