Composite
クライアントから複数のワーカー上の非分散変数を作成およびアクセス
説明
Composite オブジェクトには、spmd ステートメントを実行する並列ワーカーに格納された変数への参照が含まれます。Composite オブジェクトは、各ワーカーにつき 1 つの要素をもつ cell 配列に似ていて、ワーカーごとに異なる値を含むことができます。cell 配列のインデックス付けを使用して値を取得でき、インデックスまたは spmd ブロックを使用してエントリの値を定義できます。Composite がクライアントに存在し、並列プールが開いたままになっている間は、ワーカー上の実際のデータは以降の spmd の実行で引き続き使用可能です。
作成
spmd ステートメントは、spmd ステートメントの本体が値を返すと、クライアント上に Composite の変数を自動的に作成します。そのため、Composite オブジェクトを直接作成する必要はほとんどありません。
Composite オブジェクトは関数 Composite を使用して明示的に作成することもできます。
説明
は、現在の並列プールのワーカーを使用してクライアント上に c = CompositeComposite オブジェクトを作成します。
オブジェクトが参照する実際のワーカーの数は、プールのサイズおよび既存のすべての Composite オブジェクトのサイズによって決まります。並列プールが開いていない場合、関数 Composite は既定のプロファイルを使用してワーカーの並列プールを起動します。
Composite オブジェクトを手動で作成する場合、spmd ステートメントの外で行う必要があります。初期状態では、手動で作成した Composite オブジェクトの各エントリにはデータがありません。エントリの値を定義するには、インデックスまたは spmd ブロックを使用します。
は、c = Composite(pool,___)parallel.Pool オブジェクト pool で指定された並列プールのワーカーを使用して Composite オブジェクトを作成します。この構文は、gcp 関数から返されるプール以外のプールで Composite オブジェクトを作成する場合に使用します。 (R2025a 以降)
入力引数
出力引数
オブジェクト関数
| exist | Check whether Composite is defined on workers |
| gather | Transfer distributed array, Composite object, or
gpuArray object to local workspace |
| subsasgn | Subscripted assignment for Composite |
| subsref | Subscripted reference for Composite |
Composite オブジェクトの他のオブジェクト関数は、以下の MATLAB® 配列関数と同様に動作します。
例
ヒント
関数
Compositeは、既存の並列プールのワーカー上にCompositeオブジェクトを作成します。プールがない場合、並列設定でプールの自動起動が無効になっていなければ、関数Compositeにより新たな並列プールが起動されます。並列プールがなく、Compositeによる起動もできない場合は、クライアント ワークスペースに 1 行 1 列のCompositeオブジェクトが作成されます。