DistributeDefinitions

DistributeDefinitions[s1,s2,]

シンボル siのすべての定義をすべての並列カーネルに配布する.

DistributeDefinitions["context`"]

指定のコンテキスト内のすべてのシンボルの定義を配布する.

詳細とオプション

  • DistributeDefinitionsは,事実上,自身の値だけでなく下向きの値,上向きの値,その他のタイプの値を含む記号 siの値と属性のすべての割当てにParallelEvaluateを適用する.
  • DistributeDefinitionsは記号 siの定義に現れる任意の記号に繰り返し適用される.
  • DistributeDefinitionsにはHoldAllという属性がある.
  • DistributeDefinitionsは,事実上,記号 siの定義を「登録」し,起動されたすべての新規並列カーネルに自動的に配布されるようにする.
  • 任意の式 expr についてのDistributeDefinitions[expr]expr 中のすべての記号の定義を配布する.
  • DistributeDefinitionsは,実際に配布されたシンボルのリストをHoldFormで包み込んで返す.

例題

すべて開くすべて閉じる

  (2)

並列サブカーネルが起動されたことを確認する:

サブカーネルで使われる値をまず配布する必要がある:

デフォルトコンテキストのシンボルは自動的に配布される:

スコープ  (5)

変数の値:

関数:

上向きの値:

属性:

現行コンテキストのすべての記号の定義を配布する:

一般化と拡張  (1)

配布された定義が依存する補助定義も自動的に配布される:

特性と関係  (7)

DistributeDefinitionsはそれまでの値や存在する属性をすべて上書きする:

関数をクリアし,それを再配布することで,配布された定義を取り除く:

DistributeDefinitionsParallelEvaluateを使ってすべてのカーネルに定義を送る:

明示的なParallelEvaluateも同じことをする:

配布された定義は新たなカーネルにも引き継がれるが,ParallelEvaluateの効果は引き継がれない:

より高レベルの並列コマンドに関しては,インタラクティブに定義された関数が自動的に配布される:

手動で定義を配布し自動配布を無効にする:

サブカーネルのみで値のある記号は配布されない:

サブカーネル上の値はそのまま残される:

記号に局所的な値が与えられるやいなや,その値は次の並列計算で配布される:

ParallelNeedsを使ってすべての並列カーネルにパッケージを設定する:

DistributeDefinitionsを使ってユーザ自身の定義を設定する:

$DistributedDefinitionsは,定義が配布されている全シンボルのリストを与える:

リストには自動的に配布されたシンボルも含まれる:

考えられる問題  (5)

並列カーネルにとって既知ではない関数が使われると評価が連続的に行われかねない:

すべての並列カーネルで関数を定義する:

これで,この関数が並列カーネルで評価されるようになった:

DistributeDefinitionsを使っても定義の自動配布は抑えられない:

定義を変更する:

変更された定義は自動的に配布される:

定義の自動配布を抑える:

サブカーネル上だけで定義された記号は自動的には配布されない:

内部状態を有するある種のオブジェクトは配布されると効率的に働かないことがある:

よりよいパフォーマンスのためにそのようなオブジェクトをすべてのサブカーネルで再計算する:

代りに,サブカーネル上のすべてのデータを再評価する:

ReadProtected属性があるシンボルの定義は配布できない:

定義は必要に応じてのみ配布される.定義が変更されていなければ,再度配布されることはない:

どちらのシンボルもまだ配布された状態である:

おもしろい例題  (1)

ガウス素数を素早く可視化する:

Wolfram Research (2008), DistributeDefinitions, Wolfram言語関数, https://reference.wolfram.com/language/ref/DistributeDefinitions.html (2010年に更新).

テキスト

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

BibTeX

@misc{reference.wolfram_2024_distributedefinitions, author="Wolfram Research", title="{DistributeDefinitions}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/DistributeDefinitions.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_distributedefinitions, organization={Wolfram Research}, title={DistributeDefinitions}, year={2010}, url={https://reference.wolfram.com/language/ref/DistributeDefinitions.html}, note=[Accessed: 21-November-2024 ]}