ParallelCombine
ParallelCombine[f,h[e1,e2,…],comb]
計算の部分をすべての並列カーネルに分配して f[h[e1,e2,…]]を並列評価し,部分的な結果を comb で結合する.
ParallelCombine[f,h[e1,e2, …]]
h が属性Flatを持つ場合はParallelCombine[f,h[e1,e2,…],h]に等しく,それ以外の場合はParallelCombine[f,h[e1,e2,…],Join]に等しい.
詳細とオプション
- ParallelCombine[f,h[e1,…,en],comb]は,式 f[h[e1,…,ek]], f[h[ek+1,…]], …, f[h[…,en]] を形成し,使用可能なすべてのカーネルでこれらの式を評価し,comb[r1,r2,…]を使って結果 riを結合する.
- デフォルトの結合器であるJoinは f[h[e1,…,ek]]の結果が頭部 h を持つような関数 f に適している.これには属性Listableを持つすべての関数が含まれる.
- 属性Flatがある頭部 h の場合,デフォルトの結合器 h は事実上結合法則h[e1,…,en] = h[h[e1,…,ek],h[ek+1,…],…,h[…,en]]を実装する.
- comb を矛盾なく選ぶと,ParallelCombine[f,h[e1,e2,…],comb]は f[h[e1,e2,…]]に等しくなる.
- 使用可能なカーネルがない場合,ParallelCombineは f[h[e1,e2,…]]を通常の方法で評価する.
- ParallelCombineはParallelizeと同じMethodオプションを取る.次は,使用可能な設定である.
-
"CoarsestGrained" カーネルの数だけたくさんの部分に計算を分割する "FinestGrained" できるだけ少ない部分ユニットに計算を分割する "EvaluationsPerKernel"->e 1カーネルあたり最大で e 個の部分に計算を分割する "ItemsPerEvaluation"->m 計算をそれぞれ最大 m 個の部分ユニットに分割する Automatic オーバーヘッドと負荷分散の間で妥協する - ParallelCombineはParallelizeと同じDistributedContextsオプションを取る.デフォルト値はDistributedContexts:>$DistributedContextsである.
- ProgressReportingオプションは,並列計算の進捗状況を報告するかどうかを指定する.
- デフォルト値はProgressReporting:>$ProgressReportingである.
例題
すべて開くすべて閉じる例 (2)
スコープ (9)
リスト可能な関数 (1)
Listableな関数はすべてParallelCombineで並列化できる:
構造保存関数 (3)
オプション (11)
Method (6)
DistributedContexts (5)
並列計算に現れるすべてのコンテキストのすべての記号の定義を配布する:
DistributedContextsオプションの値をデフォルト値に戻す:
アプリケーション (3)
特性と関係 (5)
ParallelMapの実装:
リスト可能な関数にとって,ParallelCombineとParallelMapは等しい:
ParallelizeはしばしばParallelCombineによって実装される:
多くのデータ並列コマンドの並列バージョンはParallelCombineを使って容易に書くことができる:
考えられる問題 (2)
デフォルトの結合器はJoinである.これはリスト様の結果に相応しい:
関数が短い引数リストを簡約することはあるが,リストが長いと簡約は行われない:
部分式のこのような簡約は並列マッピングを不可能にすることがある:
テキスト
Wolfram Research (2008), ParallelCombine, Wolfram言語関数, https://reference.wolfram.com/language/ref/ParallelCombine.html (2010年に更新).
CMS
Wolfram Language. 2008. "ParallelCombine." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2010. https://reference.wolfram.com/language/ref/ParallelCombine.html.
APA
Wolfram Language. (2008). ParallelCombine. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ParallelCombine.html