製品
製品の一覧
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
>
システムインターフェースと配備
>
並列計算
>
並列計算におけるリソースの共有
>
SetSharedFunction
>
Mathematica
>
コアとなる言語
>
調整とデバッグ
>
並列計算
>
並列計算におけるリソースの共有
>
SetSharedFunction
>
MATHEMATICA 組込みシンボル
$SharedFunctions
UnsetShared
SetSharedVariable
DistributeDefinitions
DownValues
関連項目 »
|
並行性
並列計算の設定
並列計算
並列計算におけるリソースの共有
バージョン7.0の新機能のまとめ
バージョン7.0の新機能:アルファベット順のリスト
その他 »
SetSharedFunction
SetSharedFunction
シンボル
を,下向きの値がすべての並列カーネルで同期される共通関数として宣言する.
詳細
任意のカーネルで定義される共通関数の下向きの値は,マスターカーネルで保持されており,並列サブカーネルへのアクセスはすべてマスターカーネルを通して同期される.
評価されない
の形の式は
Null
を返す.
例題
すべて閉じる
例
(1)
fs
を(大域的な)共有関数にする:
各サブカーネルが同じ共有変数の定義を行う:
共有しないと,各サブカーネルがそれ自身の(局所的な)関数のコピーを持つことになる:
fs
を(大域的な)共有関数にする:
In[1]:=
各サブカーネルが同じ共有変数の定義を行う:
In[2]:=
Out[2]=
In[3]:=
Out[3]=
共有しないと,各サブカーネルがそれ自身の(局所的な)関数のコピーを持つことになる:
In[4]:=
Out[4]=
In[5]:=
Out[5]=
In[6]:=
スコープ
(4)
関数を定義し共有にする:
各サブカーネルから呼ばれると,関数はマスターカーネルで
next
を更新する:
デフォルトの規則を使って共有関数を設定する:
サブカーネルについて追加の定義を行う:
この関数は共有されているので,マスターカーネルも追加の規則について認識している:
指標付きのデフォルト値を持った共有変数を保持する:
局所変数
results
がマスターカーネルで操作できるように共有関数を定義する:
サブカーネルから関数を呼ぶ:
マスターカーネル上の変数が変更された:
一般化と拡張
(1)
マスターカーネル上の共有関数の遅延的定義:
このような定義は,どのカーネルがこれを評価しようとも,常にマスターカーネルで評価される:
並列カーネルで行われた共有関数の定義:
このような定義は常にその値を求めているカーネルで評価される:
アプリケーション
(3)
共有関数は同期に使うことができる:
共有変数と危険域を使う方法では効率が低下する:
簡単な待ち行列データ型のコンストラクタ:
2つの共有待ち行列を作る:
入力待ち行列を埋める:
入力待ち行列内の要素を並列で処理し,結果を出力待ち行列に入れる:
単一の共有関数を使って入力と結果の両方を伝達する:
検索を設定し手動で放棄されるまで進行状況を表示する:
ここまでの結果,
の因数の数のリスト:
考えられる問題
(3)
共有関数は単なるコードの配布には効率的ではなく,連続評価の原因となる:
並列カーネルに必要な任意の関数定義を単に配布する:
共有変数上の別々の読み書き操作はスレッドセーフではない:
共有関数を使って(共有ではない)変数へのアクセスを同期する:
あるいは
CriticalSection
を使ってコードセクション全体を原子的にする:
並列の動的プログラミング:
おもしろい例題
(1)
Sow
の並列版:
関連項目
$SharedFunctions
UnsetShared
SetSharedVariable
DistributeDefinitions
DownValues
その他
並行性
並列計算の設定
並列計算
並列計算におけるリソースの共有
バージョン7.0の新機能のまとめ
バージョン7.0の新機能:アルファベット順のリスト
バージョン 7 の新機能