Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > システムインターフェースと配備 > 並列計算 > 並列計算におけるリソースの共有 > SetSharedVariable >
Mathematica > コアとなる言語 > 調整とデバッグ > 並列計算 > 並列計算におけるリソースの共有 > SetSharedVariable >

SetSharedVariable

SetSharedVariable
を,値がすべての並列カーネルで同期される共有変数として宣言する.
  • 共有変数の一意的な値はマスターカーネルに保存され,並列サブカーネルへのすべてのアクセスがマスターカーネルを通して同期される.
  • 値のない共有変数を評価するとNullになる.
xsを(大域的な)共有変数にする:
それぞれのサブカーネルが(大域的)共有カーネルの値分だけ増分する:
共有にしなければ,それぞれのサブカーネルは変数の自分の(局所的)コピーを使う:
xsを(大域的な)共有変数にする:
In[1]:=
Click for copyable input
それぞれのサブカーネルが(大域的)共有カーネルの値分だけ増分する:
In[2]:=
Click for copyable input
Out[2]=
In[3]:=
Click for copyable input
Out[3]=
共有にしなければ,それぞれのサブカーネルは変数の自分の(局所的)コピーを使う:
In[4]:=
Click for copyable input
In[5]:=
Click for copyable input
Out[5]=
In[6]:=
Click for copyable input
Out[6]=
一つの値を共有する:
共有リストの一つの要素に効率的にアクセスする:
共有変数に新たな値を割り当てる:
最後に行われた割当てだけが残る:
共有リストの一つの要素を変える:
共有変数の値を更新する:
共有リストを付加する:
共有リストに要素を追加する:
マスターカーネルで定義された遅延的な値はマスターカーネルで評価される:
サブカーネルで定義された遅延的な値は値を求めているカーネルで評価される:
共有変数を使って無限探索における入出力を同期する:
が素数となるような を計算が手動で放棄されるまで求める:
素数が見付かり次第すべての評価が停止するように共有変数を使って合図する:
共有変数を使って行うべきタスクを渡す:
主な計算ステップを数えて計算の進行をモニターする:
求まり次第結果を返す:
結果がリアルタイムで現れるのを見る:
$KernelCountは事実上共有変数である:
別々の読み書き操作はスレッドセーフではない:
同期に原子的更新を使う:
あるいは,CriticalSectionを使ってコードセクション全体を原子的にする:
バージョン 7 の新機能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
フォーマット:   HTML  |  CDF