Modeling Concurrent Computing

796 views

Published on

並行計算のモデルのうち、アクターモデルとプロセス計算について説明している。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
796
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Modeling Concurrent Computing

  1. 1. Modeling Concurrent Computing 並行計算をモデル化する 松下祐介
  2. 2. 数理モデル • 複雑なことを扱うと頭がこんがらがる • そこで数学の登場 • 数学によってモデルにしよう (例) 自然法則 ⇒ ニュートン力学、相対性理論、... 計算機 ⇒ チューリングマシン、ラムダ計算、... 経済 ⇒ ゲーム理論のゲーム、... • 優秀なモデルは単純で美しく、強力であり、そ して本質を明らかにする
  3. 3. 並行計算の数理モデル • 並行計算はなんだかややこしい • しかも大規模な並行計算が必要になってきた • そこで数理モデルの登場 ▫ アクターモデル ▫ プロセス計算 ▫ ペトリネット
  4. 4. Actor Model アクターモデル
  5. 5. アクター • アクターは ▫ 他のアクターにいくつかのメッセ-ジを送る ▫ いくつかの新たなアクターをつくる ▫ メッセージに応じて何かをする • これらの振る舞いは並行的に実行される
  6. 6. データの取り扱い • アクターはカプセル化されたオブジェクト ▫ 自分が持っているデータは自分のみが取り扱う ▫ 他のアクターはデータを参照・操作できない ▫ メッセージだけで情報交換を行う  オブジェクト指向においてメッセージは重要概念
  7. 7. アクターの通信 (1) • 送信側アクターは ▫ アドレスによって送信先のアクターを指定する ▫ 受信されるのを待たずに次のことをする • アクターのアドレスの取得方法 ▫ 受信したメッセージから取得 ▫ 自分が生成したアクターであるので知っている ▫ その他 • 局所性 ▫ アドレスを知っている相手にしかメッセージを送 れない
  8. 8. アクターの通信 (2) • 受信側アクターは ▫ 自分のデータを操作する ▫ 新たなメッセージを送る ▫ 新たなアクターをつくる • 通信のスケールはいろいろ ▫ プロセス間だったり、ネットワーク間だったり • メッセージは入れ替わりうる ▫ 送信された順に受信されるとは限らない
  9. 9. 短所 • 共有データの扱いが面倒 • 同期を扱えない
  10. 10. 長所 • 並行計算を気楽に考えられる ▫ アクターはスレッドを直接扱わなくていい ▫ アクターは内部状態へのロックを考えなくていい • スケーラビリティー ▫ 問題は小さなアクターに分割していけばよい ▫ プロセッサの数の増減にも対応できる
  11. 11. 文献 • アクターモデルについて http://www.slideshare.net/TakamasaMitsuji/ss- 13626473
  12. 12. Process Calculus プロセス計算
  13. 13. はじめに • プロセス計算には様々な種類がある ▫ 一気に全体を見渡すことは難しい • プロセス代数とも呼ばれる • プロセス計算を記述するための CSP (Communicating Sequential Processes) という言語に基づいて説明していく。
  14. 14. 基本 (1) • プロセスはオブジェクトである ▫ データを持つ ▫ イベントが来たらデータを操作する • イベント/チャンネルは通信路である ▫ 他への操作 (スイッチオン/オフなど) ▫ 入力 (mouse?xyなど) ▫ 出力 (screen!bitmapなど)
  15. 15. 基本 (2) • プリミティブプロセス ▫ STOP (通信をしない) ▫ SKIP (必ず成功する) ▫ DIV (発散) • 環境 ▫ プロセスたちの外にある世界 • プロセスは再帰的定義が可能
  16. 16. 演算 (1) • プレフィックス a→P ▫ イベントaと通信したあとにプロセスPを行うプロ セス • 決定的選択/外部選択 (a→P)□(b→Q) ▫ 環境がaとbのどちらのイベントを起こすか決定 ▫ aが起こったらP、bが起こったらQを行う ▫ 同時にaとbを受け取ったらどうなるかは不定 • 非決定的選択/内部選択 (a→P)∏(b→Q) ▫ プロセスがaとbどちらのイベントを起こすか決定
  17. 17. 演算 (2) • インターリーブ/並行合成 P|||Q ▫ PとQが同時並行に動作 • インターフェース並行/共有 P|[{a}]| Q ▫ PとQが同時並行に動作 ▫ イベントaを共有する • 隠蔽 P\{a} ▫ イベントを観測不可能にする  プロセスの抽象化のため
  18. 18. 演算 (3) • 逐次合成 P; Q ▫ PをしたあとにQをする • 条件選択 if p then P else Q ▫ pが真ならばPを、偽ならばQを実行する • タイムアウト P ▷Q ▫ PがタイムアウトしたらQを行う • 割り込み P△Q
  19. 19. 演算 (4) • 変更 P [[ a←b ]] ▫ プロセスの中のイベントaをイベントbに書き換え たプロセス
  20. 20. 通信 (1) channel juice Coin = {10,50,100,500} channel in:Coin -- コインを入れるところ VM(n) = if n<120 then in?x → VM(n+x) -- ?で入力 else juice → VM(n-120) --ジュース1本120円
  21. 21. 通信 (2) PERSON = (juice -> SKIP) □ ( in!10 -> PERSON -- ! で出力 ∏ in!50 -> PERSON ∏ in!100 -> PERSON ∏ in!500 -> PERSON ) SYSTEM = PERSON [|{in,juice}|] VM(0)
  22. 22. さまざまなプロセス計算 • CSP (Communicating Sequential Process) • CCS (Calculus of Commnicating Systems) • ACP (Algebra of Communicating Process) • π計算 • アンビエント計算
  23. 23. 動作検証ツール ツール 理論 FDR CSP PAT CSP# mCRL2 ACP CWB CCS MWB π計算 LTSA FSP プロセス計算の形に直すことで機械的に動作を検証できる!
  24. 24. 文献 • プロセス代数の基本と関連ツールの紹介 http://staff.aist.go.jp/y-isobe/topse/vic/slides/csp- isobe-2010-07.pdf • プロセス代数に基づくモデリング http://lis2.huie.hokudai.ac.jp/~kurihara/classes/P rogram/fsp.ppt http://kussharo.complex.eng.hokudai.ac.jp/~kuri hara/classes/Program/JTEXT/05JTEXT.pdf • CSP (Communicating Sequential Processes) http://d.hatena.ne.jp/ymkwt/
  25. 25. Finale フィナーレ
  26. 26. フィナーレ • 先人たちの知恵に学ぼう ▫ モデルの再開発はしたくない • 確立された数理モデルに基づけば ▫ いろいろなツールを使いやすい ▫ 第三者との共通理解もしやすい ▫ いろいろと便利 • 抽象の世界を楽しもう!

×