並列プログラミング言語による Dining Philosophers Problem の検証 大井 謙 数理科学コース 4 年 福永研究室 2010 年 3 月 4 日 ( 木 ) 1.

Slides:



Advertisements
Similar presentations
授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
Advertisements

プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
モデル検査の応用 徳田研究室 西村太一.
ハノイの塔 1年9組 馬部 由美絵.
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
連続系アルゴリズム演習 第2回 OpenMPによる課題.
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
Chapter11-4(前半) 加藤健.
ブロック運びゲーム.
分散コンピューティング環境上の Webリンク収集システムの実装
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
Handel-Cによる       エアホッケー.
市販のソフトウェアが これほど脆弱な理由 (それをどのように解決するか).
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
Hybrid ccにおけるアニメーションが破綻しないための処理系の改良
データ構造と アルゴリズム 知能情報学部 新田直也.
SS2009 形式手法の適用ワーキング グループの報告
補数 n:桁数、b:基数 bの補数 bn-x 253(10進数)の10の補数は、 =747
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
Systems and Software Verification 10. Fairness Properties
CSP記述によるモデル設計と ツールによる検証
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
Ibaraki Univ. Dept of Electrical & Electronic Eng.
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
マルチTPcoreによる並列コンピュータ
Occam言語による マルチプリエンプティブシステムの 実装と検証
第10回 情報セキュリティ 伊藤 高廣 計算機リテラシーM 第10回 情報セキュリティ 伊藤 高廣
オペレーティングシステム 第3回( ) デッドロックと排他制御.
OpenMPハードウェア動作合成システムの検証(Ⅰ)
MPIを用いた並列処理 ~GAによるTSPの解法~
高速剰余算アルゴリズムとそのハードウェア実装についての研究
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
「iQUAVIS」 によるハード・ソフトの 横断的な構想検討
C言語でスレッド (Pthread) 2007年1月11日 海谷 治彦.
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
MPIとOpenMPを用いた Nクイーン問題の並列化
プログラミング入門 電卓を作ろう・パートIV!!.
ゴールドバッハ予想と その類似問題の考察 情報科学科 白柳研究室   小野澤純一.
JAVAについて 高橋 雅哉.
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
VBで始めるプログラミング こんにちは、世界。 /28 NARC.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
2つのサイコロを同時に投げる.
オペレーティングシステム 第7回 デッドロック
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
並列処理プロセッサTPCOREの 組み込みシステムへの応用 理工学研究科数理情報科学専攻 福永 力,岩波智史,情報システム研究室.
高度情報演習1A スクリーンセーバ作成 2016年4月13日 情報工学科 篠埜 功.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Handel-Cを用いた パックマンの設計
遺伝アルゴリズムによる NQueen解法 ~問題特性に着目した突然変異方法の改善~
5.チューリングマシンと計算.
プログラミング入門 電卓を作ろう・パートI!!.
演習1に関する講評 ~ 業務仕様を書く難しさ ~
卒業研究 JCSPを用いたプログラム開発  池部理奈.
ディペンダブル組込みシステムのためのコンテキスト分析手法
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
XMOSプログラミング入門.
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
ネットワークプログラミング 05A1302 円田 優輝.
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
全体ミーティング(9/15) 村田雅之.
@kagamiz (Jayson Sho Toma)
Presentation transcript:

並列プログラミング言語による Dining Philosophers Problem の検証 大井 謙 数理科学コース 4 年 福永研究室 2010 年 3 月 4 日 ( 木 ) 1

目次 1. 並列処理について 2. Dining Philosophers Problem 2.1. 問題の概要 2.2. 具体的な解法 Edsger W.Dijkstra による解法 Carel S.Scholten による解法 2.3. 解法についての検証 3. まとめ 2

1. 並列処理について 逐次処理と並列処理 – 逐次処理 : 1 つずつ処理を実行 – 並列処理 : 複数の処理を同時に実行 例 試し割りによる 1000 までの素数判 定 3 逐次処理並列処理 試し割り : 判定する数 を 3 ~ √n の整数で順 番に割る方法 n = 1 ~ 1000 n = 1 ~ 500n = 501 ~ 1000 素数 n を出 力 同時に判定 計算時間削減

2. Dining Philosophers Problem 2.1. 問題の概要 並列処理の同期問題を一般化した例 発端は 1971 年 Edsger W.Dijkstra の提示 Antony Hoare により一般化される – 互いに会話しない 5 人の哲学者達がいる – 空腹時に座り 自分の両隣のフォークを取る – 要求が満たされないと待ち続ける – 食事に必要なフォークは 2 本 – 片方ずつしか取れない ← ウィキペディア 「食事する哲学者の問 題」の 写真から引用 ( ki/ 食事する哲学者の問題 ) 5 台のコンピュータがある これらが 5 台のテープ装置に競合アクセスす る 同期 : 同時並行して動 く処理間で時系列的な 制御をすること 4

2. Dining Philosophers Problem 2.1. 問題の概要 哲学者達の振舞い フォークの振舞い 全体の振舞い –PHIL と FORK を並列処理 (5 つずつ 計 10) ← ウィキペディア 「食事する哲学者の問 題」の 写真から引用 ( ki/ 食事する哲学者の問題 ) 座る → 食べる → フォーク置く L → フォーク置く R → 立つ → PHIL = ( フォーク取る L → フォーク取る R → PHIL ) FORK = ( R 側 PHIL に取られる → L 側 PHIL に取られる → R 側 PHIL に置かれる → L 側 PHIL に置かれる → or FORK FORK ) 5

2. Dining Philosophers Problem 2.1. 問題の概要 何が問題なのか – 全員同時に腹が減ったとき 5 人が同時にフォークを取る その後 もう片方を取ろうとすると・・・ 誰の要求も満たされず 全員が永遠に待ち続け る ← ウィキペディア 「食事する哲学者の問 題」の 写真から引用 ( ki/ 食事する哲学者の問題 ) デッド ロック 6

2. Dining Philosophers Problem 2.2. 具体的な解法 デッドロックが起こる条件 5 人全員による満たされない要求が円になる 2 つの解法 – 哲学者の挙動を直接書き換える方法  Edsger W.Dijkstra による解 – 外部から哲学者の挙動に制限をかける方法  Carel S.Scholten による解 これを崩せば良 い! 7

2. Dining Philosophers Problem 2.2. 具体的な解法 Edsger W.Dijkstra による解法 ( ※ ) 左利き:左 → 右 の順にフォークを取ると考える 哲学者達の振舞い 利き腕の違う哲学者を用意す る 座る → 食べる → フォーク置く L → フォーク置く R → 立つ → LPHIL = ( フォーク取る L → フォーク取る R → LPHIL ) 座る → 食べる → フォーク置く R → フォーク置く L → 立つ → RPHIL = ( フォーク取る R → フォーク取る L → RPHIL ) 8

2. Dining Philosophers Problem 2.2. 具体的な解法 Edsger W.Dijkstra による解法 ← ウィキペディア 「食事する哲学者の問 題」の 写真から引用 ( ki/ 食事する哲学者の問題 ) 右 左 左左 左 ステッ プ

2. Dining Philosophers Problem 2.2. 具体的な解法 Carel S.Scholten による解法 ( ※ ) 召使いは 同時に 4 人以下の哲学者しか座らせない 召使いの振舞い 召使い (Footman) を 1 人 任用す る FOOT(0) = ( 座らせる → FOOT(1) ) FOOT( j ) = ( 座らせる → FOOT( j + 1 ) or 立たせる → FOOT( j - 1 ) ) FOOT(4) = ( 立たせる → FOOT(3) ) ( j ∈ {1, 2, 3} ) 10

2. Dining Philosophers Problem 2.2. 具体的な解法 Carel S.Scholten による解法 ← ウィキペディア 「食事する哲学者の問 題」の 写真から引用 ( ki/ 食事する哲学者の問題 ) ステッ プ 012 F 11

2. Dining Philosophers Problem 2.3. 解法についての検証 設計段階でミスがない事を保証できるか – 哲学者 1 人あたりの状態数は 6 通り – フォーク 1 本あたりの状態数は 3 通り – 哲学者は 5 人 フォークは 5 本 最悪状態数 = 6^5 * 3^5 = 約 190 万 検証ツールの重要性 例 CSP 記述の検証ツール( PAT ) 手動では非常に困難! CSP : 並行システムを 形式的に記述し、解析 するための言語 12

3. まとめ まとめ – 逐次処理と並列処理を対比した上 で並列処理に潜む問題点を確認 –Dining Philosophers Problem を 解決するための案を 2 つ提示・検 証 – 検証ツールの重要性について考察 13