gather
分散配列、Composite オブジェクト、または gpuArray オブジェクトをローカル ワークスペースに転送する
構文
説明
X = gather( は、次の配列データを処理できます。A)
gpuArrayで、Aの要素を GPU からローカル ワークスペースに転送し、Xに割り当てます。分散配列に対して
spmdステートメントの外側で、複数のワーカーからAの要素をローカル ワークスペースに収集し、Xに割り当てます。対話型分散配列に対して
spmdステートメントまたは通信ジョブの内側で、Aの要素を収集して、すべてのワーカーのXに複製します。
gather は、tall 配列 (gather (tall) を参照) など他のデータ型についても呼び出せます。データ型が収集をサポートしていない場合、gather を実行しても効果はありません。
GPU 配列または分散配列の収集は高コストの可能性があり、こうしたタイプの配列をサポートしていない関数で結果を使用する必要がある場合を除いて、一般に収集は不要です。関数のサポートの詳細については、GPU での MATLAB 関数の実行または分散配列を使用した MATLAB 関数の実行を参照してください。
X = gather(gpuArray(X))、X = gather(distributed(X))、または X = gather(codistributed(X)) は元の配列 X を返します。
[X1,X2,...,Xn] = gather(A1,A2,...,An) は複数の配列 A1,A2,...,An を収集し、対応する出力 X1,X2,...,Xn を生成します。入力引数の数と出力引数の数は一致しなければなりません。
X = gather( は対話型分散配列 Cd,destination)Cd をバリアント配列 X に変換し、destination で指定されたワーカーは全要素を含み、その他すべてのワーカーは X が 0 行 0 列の空の double 配列となるようにします。
[X1,X2,...,Xn] = gather(Cd1,Cd2,...,Cdn,destination) は対話型分散配列 Cd1,Cd2,...,Cdn を収集して、対応する出力 X1,X2,...,Xn を生成します。これには destination で指定されたワーカーのすべての要素が含まれます。入力引数の数と出力引数の数は一致しなければなりません。
例
入力引数
ヒント
gatherは、実行される全ワーカーのワークスペースに対話型分散配列をまとめるか、または MATLAB クライアントに分散配列を集めますが、両方は行わないことに注意してください。spmdステートメント内でgatherを使用する場合、収集された配列にクライアント上でアクセスするには、それに対応するCompositeオブジェクトを使用します。Composite を使用するワーカー変数へのアクセスを参照してください。gatherを通信ジョブ内で実行する場合、収集された配列はタスクからの出力引数としてクライアントに返すことができます。分散配列または対話型分散配列の
gather関数にはすべてのワーカー間での通信が必要であるため、if spmdIndex == 1などの条件付きステートメントの内部にこの関数を置いて、すべてのワーカーからのデータを単一のワーカーに収集することはできません。ワークスペースで変数を右クリックして [GPU から収集] を選択すると
gpuArrayオブジェクトを収集できます。 (R2025a 以降)
バージョン履歴
R2006b で導入参考
arrayfun | codistributed | distributed | gpuArray | Composite | pagefun