メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

codistributor1d

R2026a

対話型分散配列の 1 次元分散スキーム

    説明

    codistributor1d オブジェクトを使用して対話型分散配列の 1 次元分散スキームを定義します。この 1 次元対話型分散では、配列を単一の特定次元 (分散次元) に沿って非巡回的に分割し、これを分散します。

    作成

    説明

    codist = codistributor1d は、既定の次元と分割を使用して codistributor1d オブジェクトを返します。既定の次元は、対話型分散配列の大きさが 1 でない最後の次元です。既定の分割では、既定の次元に沿ってできるだけ均等に配列を分散します。

    codist = codistributor1d(Dimension) は、Dimension プロパティで指定された次元に沿って分散するための 1 次元の対話型分散オブジェクトを返します。たとえば、Dimension が 1 の場合、この関数は行に沿ってオブジェクトを分散させます。

    例

    codist = codistributor1d(Dimension,Partition) は、Partition プロパティで指定された分割ベクトルによる分散のための 1 次元の対話型分散オブジェクトも返します。たとえば、C1 = codistributor1d(1,[1,2,3,4]) は、10 行からなる配列を 4 つのワーカーに分散させます。1 行を最初のワーカーに、2 行を 2 番目のワーカーに、3 行を 3 番目のワーカーに、4 行を 4 番目のワーカーに分散させます。

    上記の構文で形成される対話型分散は、いずれもグローバル サイズが指定されていないため、完全なものではありません。このような方法で作成された対話型分散は、対話型分散配列の作成時にテンプレート対話型分散として他の関数の引数の形で使用します。

    codist = codistributor1d(Dimension,Partition,gsize) は、グローバル サイズ gsize の対話型分散オブジェクトを返します。

    結果の対話型分散オブジェクトを使用して、codistributed.build によってそのローカル部分から対話型分散配列を作成できます。既定の次元を使用するには、Dimension プロパティに codistributor1d.unsetDimension を指定します。この関数では、分散次元が gsize から導出され、既定の次元として大きさが 1 ではない最後の次元が選択されます。同様に、既定の分割を使用するには、Partition プロパティに codistributor1d.unsetPartition を指定します。この関数では、グローバル サイズと分散次元から既定の分割が導出されます。

    このような対話型分散を使用する対話型分散配列のワーカー workerIndex のローカル部分は、すべての次元でサイズが gsize になりますが、dimension だけはサイズが part(workerIndex) になります。ローカル部分のクラスおよび属性は対話型分散配列全体と同じです。次元 dimension に沿ってさまざまなローカル部分を連結することによりグローバル配列全体を復元することができます。

    例

    入力引数

    すべて展開する

    対話型分散配列のグローバル サイズ。整数として指定します。

    プロパティ

    すべて展開する

    分散次元。スカラー整数として指定します。分散次元は、codistributed 配列を分散する次元を指定します。

    分割ベクトル。整数の行ベクトルとして指定します。分割ベクトルは、ワーカーへの配列 codistributed の分散を指定します。

    オブジェクト関数

    codistributed.cell対話型分散 cell 配列を作成する
    codistributed.colonコロン演算の分散
    codistributed.spallocスパース対話型分散行列にスペースを割り当てる
    codistributed.speye対話型分散スパース単位行列を作成する
    codistributed.sprand一様分布する疑似乱数値からなるスパース対話型分散配列を作成する
    codistributed.sprandn正規分布した疑似乱数値からなる対話型分散スパース配列を作成する
    eye対話型分散単位行列の作成
    falselogical 0 (false) からなる対話型分散配列を作成
    globalIndices対話型分散配列のローカル部分のグローバル インデックス
    Infすべて Inf 値からなる対話型分散配列を作成
    isComplete対話型分散オブジェクトが完全な場合に true を返す
    NaNすべて NaN 値からなる対話型分散配列を作成
    onesすべて 1 からなる対話型分散配列を作成
    rand一様分布する乱数からなる対話型分散配列を作成
    randn正規分布する乱数からなる対話型分散配列を作成
    sparse対話型分散スパース行列の作成
    truelogical 1 (true) からなる対話型分散配列を作成する
    zerosすべて 0 からなる対話型分散配列を作成する

    例

    すべて折りたたむ

    codistributor1d オブジェクトを使用して、行によって分散される、1 の値からなる N 行 N 列の行列を作成します。

    N = 1000;
    spmd
        codistr = codistributor1d(1); % 1st dimension (rows)
        C = ones(N,codistr);
    end

    完全指定の codistributor1d オブジェクトを使用して、N 行 N 列の対話型分散行列をそのローカル部分から作成します。その上で、どの要素がワーカー 2 に格納されているかを可視化します。

    ワーカーごとに完全なサイズの配列から開始し、myLocalSize を配列全体の既定の部分に設定します。

    N = 1000;
    spmd
        codistr = codistributor1d( ...
                        codistributor1d.unsetDimension, ...
                        codistributor1d.unsetPartition, ...
                        [N N]);
        myLocalSize = [N N]; % 
        myLocalSize(codistr.Dimension) = codistr.Partition(spmdIndex);
        myLocalPart = spmdIndex*ones(myLocalSize);
        D = codistributed.build(myLocalPart,codistr);
    end
    spy(D==2);

    バージョン履歴

    R2009b で導入