Main Content

codistributor1d

対話型分散配列の 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 の値からなる NN 列の行列を作成します。

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

    完全指定の codistributor1d オブジェクトを使用して、NN 列の対話型分散行列をそのローカル部分から作成します。その上で、どの要素がワーカー 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 で導入