製品
製品の一覧
Mathematica
Mathematica
学生エディション
Mathematica
ホームエディション
Wolfram
CDF Player
(無料ダウンロード)
CDF(計算可能ドキュメント形式)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Wolfram
SystemModeler
Wolfram
Finance Platform
Mathematica
アドオン
Wolfram|Alpha関連製品
ソリューション
ソリューションの一覧
工学
航空宇宙工学と防衛
化学工学
制御系
電気工学
画像処理
生産工学
材料科学
機械工学
オペレーションズリサーチ
光学
石油工学
バイオテクノロジーと医学
バイオインフォマティクス
医用画像処理
金融,統計,ビジネスの分析
保険数理
データの解析とマイニング
計量経済学
経済学
金融工学と数学
財務リスク管理
統計
ソフトウェア工学とコンテンツ配信
オーサリングと出版
インターフェース開発
ソフトウェア工学
Web開発
科学
天文学
バイオサイエンス
化学
環境科学
地球科学
社会・行動科学
デザイン,芸術,娯楽
ゲームデザイン・特殊効果・ジェネレーティブアート
教育
高等教育
短大・専門学校
初等・中等教育
学生
テクノロジー
CDF(計算可能ドキュメント形式)
高性能並列計算(HPC)
参照:テクノロジーガイド
ご購入
オンラインストア
他の購入方法
Volumeライセンスとサイトライセンス
販売部へのご連絡
ソフトウェア
サービス
アップグレード
トレーニング
書籍
Wolframグッズ
サポート
テクニカルサポートページ
Mathematica
ドキュメント
知識ベース
ラーニングセンター
テクニカルサービス
コミュニティ & フォーラム
トレーニング
サイトライセンスの確認
Wolframユーザポータル
会社概要
会社概要
ニュースとイベント
Wolframブログ
パートナーシップ
採用情報
Mathematica
の歴史
Stephen Wolframのホームページ
連絡先
Wolfram Webサイト
サイトの一覧
Wolfram|Alpha
デモンストレーションプロジェクト
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE
DOCUMENTATION CENTER
FOR THE LATEST INFORMATION.
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
システムインターフェースと配備
>
並列計算
>
並列計算におけるリソースの共有
>
SetSharedVariable
>
Mathematica
>
コアとなる言語
>
調整とデバッグ
>
並列計算
>
並列計算におけるリソースの共有
>
SetSharedVariable
>
MATHEMATICA 組込みシンボル
$SharedVariables
UnsetShared
SetSharedFunction
DistributeDefinitions
OwnValues
関連項目 »
|
並行性
並列計算の設定
並列計算
並列計算におけるリソースの共有
バージョン7.0の新機能のまとめ
バージョン7.0の新機能:アルファベット順のリスト
バージョン7.0の新機能:システムインターフェースと配備
その他 »
SetSharedVariable
SetSharedVariable
を,値がすべての並列カーネルで同期される共有変数として宣言する.
詳細
共有変数の一意的な値はマスターカーネルに保存され,並列サブカーネルへのすべてのアクセスがマスターカーネルを通して同期される.
値のない共有変数を評価すると
Null
になる.
例題
すべて閉じる
例
(1)
xs
を(大域的な)共有変数にする:
それぞれのサブカーネルが(大域的)共有カーネルの値分だけ増分する:
共有にしなければ,それぞれのサブカーネルは変数の自分の(局所的)コピーを使う:
xs
を(大域的な)共有変数にする:
In[1]:=
それぞれのサブカーネルが(大域的)共有カーネルの値分だけ増分する:
In[2]:=
Out[2]=
In[3]:=
Out[3]=
共有にしなければ,それぞれのサブカーネルは変数の自分の(局所的)コピーを使う:
In[4]:=
In[5]:=
Out[5]=
In[6]:=
Out[6]=
スコープ
(4)
一つの値を共有する:
共有リストの一つの要素に効率的にアクセスする:
共有変数に新たな値を割り当てる:
最後に行われた割当てだけが残る:
共有リストの一つの要素を変える:
共有変数の値を更新する:
共有リストを付加する:
共有リストに要素を追加する:
一般化と拡張
(1)
マスターカーネルで定義された遅延的な値はマスターカーネルで評価される:
サブカーネルで定義された遅延的な値は値を求めているカーネルで評価される:
アプリケーション
(5)
共有変数を使って無限探索における入出力を同期する:
が素数となるような
を計算が手動で放棄されるまで求める:
素数が見付かり次第すべての評価が停止するように共有変数を使って合図する:
共有変数を使って行うべきタスクを渡す:
主な計算ステップを数えて計算の進行をモニターする:
求まり次第結果を返す:
結果がリアルタイムで現れるのを見る:
特性と関係
(1)
$KernelCount
は事実上共有変数である:
インタラクティブな例題
(1)
別々の読み書き操作はスレッドセーフではない:
同期に原子的更新を使う:
あるいは,
CriticalSection
を使ってコードセクション全体を原子的にする:
関連項目
$SharedVariables
UnsetShared
SetSharedFunction
DistributeDefinitions
OwnValues
その他
並行性
並列計算の設定
並列計算
並列計算におけるリソースの共有
バージョン7.0の新機能のまとめ
バージョン7.0の新機能:アルファベット順のリスト
バージョン7.0の新機能:システムインターフェースと配備
バージョン 7 の新機能