spmdReduce
説明
は、関数 B
= spmdReduce(fcn
,A
)fcn
を使用して、spmd
ブロックまたは通信ジョブを実行している各ワーカー上で定義されている配列 A
を削減します。この関数は、削減の結果 B を各ワーカーに保存します。
たとえば、spmdReduce(@plus,A)
は、各ワーカー上で定義されている配列 A
の和を返します。
MATLAB® は関数 fcn
を使用し、この関数を N - 1 回呼び出すことにより、AJ を削減します。
N は、
spmd
ブロックまたは通信ジョブを実行しているワーカーの数。現在の spmd ブロックを実行しているワーカーの数を取得するには、関数spmdSize
を使用Aj は、インデックスが j である
spmd
ワーカー上で定義された配列A
。
spmd
ブロックまたは通信ジョブが常に同じ結果を生成するようにするには、fcn
を結合関数として指定します。
parfor
、parfeval
、または parfevalOnAll
を使用して並列プールでコードを実行する場合、各ワーカーは独立しており、相互の通信は行われません。これらのワーカー上で spmdReduce
を使用した場合、結果はクライアント上で spmdReduce
を使用した場合と同じになります。
現在の spmd ブロックを 1 つのワーカーが実行している場合、B
は A
と等しくなります。
は、B
= spmdReduce(fcn
,A
,destination
)A
を削減し、結果を 1 つのワーカーにのみ保存します。
例
入力引数
アルゴリズム
次の図は、spmdReduce(fcn,A)
を呼び出したときに、関数 spmdReduce
が fcn
をどのように使用するかを示しています。
拡張機能
バージョン履歴
R2022b で導入