DistributeDefinitions
DistributeDefinitions[s1,s2,…]
シンボル siのすべての定義をすべての並列カーネルに配布する.
DistributeDefinitions["context`"]
指定のコンテキスト内のすべてのシンボルの定義を配布する.
詳細とオプション
- DistributeDefinitionsは,事実上,自身の値だけでなく下向きの値,上向きの値,その他のタイプの値を含む記号 siの値と属性のすべての割当てにParallelEvaluateを適用する.
- DistributeDefinitionsは記号 siの定義に現れる任意の記号に繰り返し適用される.
- DistributeDefinitionsにはHoldAllという属性がある.
- DistributeDefinitionsは,事実上,記号 siの定義を「登録」し,起動されたすべての新規並列カーネルに自動的に配布されるようにする.
- 任意の式 expr についてのDistributeDefinitions[expr]は expr 中のすべての記号の定義を配布する.
- DistributeDefinitionsは,実際に配布されたシンボルのリストをHoldFormで包み込んで返す.
例題
すべて開くすべて閉じる特性と関係 (7)
DistributeDefinitionsはそれまでの値や存在する属性をすべて上書きする:
関数をクリアし,それを再配布することで,配布された定義を取り除く:
DistributeDefinitionsはParallelEvaluateを使ってすべてのカーネルに定義を送る:
明示的なParallelEvaluateも同じことをする:
配布された定義は新たなカーネルにも引き継がれるが,ParallelEvaluateの効果は引き継がれない:
より高レベルの並列コマンドに関しては,インタラクティブに定義された関数が自動的に配布される:
記号に局所的な値が与えられるやいなや,その値は次の並列計算で配布される:
ParallelNeedsを使ってすべての並列カーネルにパッケージを設定する:
DistributeDefinitionsを使ってユーザ自身の定義を設定する:
$DistributedDefinitionsは,定義が配布されている全シンボルのリストを与える:
考えられる問題 (5)
並列カーネルにとって既知ではない関数が使われると評価が連続的に行われかねない:
DistributeDefinitionsを使っても定義の自動配布は抑えられない:
サブカーネル上だけで定義された記号は自動的には配布されない:
内部状態を有するある種のオブジェクトは配布されると効率的に働かないことがある:
よりよいパフォーマンスのためにそのようなオブジェクトをすべてのサブカーネルで再計算する:
ReadProtected属性があるシンボルの定義は配布できない:
テキスト
Wolfram Research (2008), DistributeDefinitions, Wolfram言語関数, https://reference.wolfram.com/language/ref/DistributeDefinitions.html (2010年に更新).
CMS
Wolfram Language. 2008. "DistributeDefinitions." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2010. https://reference.wolfram.com/language/ref/DistributeDefinitions.html.
APA
Wolfram Language. (2008). DistributeDefinitions. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DistributeDefinitions.html