Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
Ichiro Satoh
計算モデル特論
国立情報学研究所
佐藤一郎 E-mail: [email protected]
Ichiro Satoh
自己紹介:佐藤一郎
n 国立情報学研究所・ アーキテクチャ科学研究系・教授
n 国立大学法人総合研究大学院大学・ 複合科学研究科・情報学専攻・教授
n 専門:分散システム
Ichiro Satoh
宣伝
国立情報学研究所/国立大学法人 総合研究大学院大学 複合科学研究科 情報学専攻 学生募集
5年一貫制博士課程
大学の学部卒業と同等以上の学力を有する者を対象とし、標準5年間で博士の学位を取得
博士後期課程
大学院修士課程修了と同等以上の学力のある者を対象とし、標準3年間で博士の学位を取得
国立情報学研究所(NII)
国立情報学研究所
Ichiro Satoh
講義の目標
n 計算モデルを通じて計算について理解すること
n 計算に関する数学的な取り扱いに慣れること
n 計算モデルを通じて(計算)システムを捉えること
n 複雑システム(並列・分散システム、相互作用)をモデル化
n 例:クラウドコンピューティングは非同期計算モデルがベース
n 例:Google MapReduceは関数型計算モデルがベース
n 評価: レポート(数回) (たぶん一回)
2
Ichiro Satoh
計算モデル
n 計算モデルの必要性 n 世の中の情報システム(コンピュータや生物)は非常に複雑
n 例:PCの構成・仕組みは複雑
n この情報システムがどのような原理に基づくかを知るには 数学的基盤を持つ抽象的な枠組みを導入する必要がある
情報システムの抽象的な枠組み=計算モデル
n 計算モデルを通じて「計算」及び「情報システム」という概念を明確化
Ichiro Satoh
講義内容(今年)
n 計算モデルとは
n 並列分散計算のモデル n CCS (Calculus for Communicating Systems) n 操作意味論 n プロセス等価性 n 時相論理 n Petri-net
n 非計算システムの計算モデル
Ichiro Satoh
講義内容(昔)
n 講義内容(予定) n 計算モデル
n 抽象機械モデル、関数型モデル、プロセス代数(プロセスカルキュラス)
n プログラミング言語意味論 n 操作意味論、表示意味論、公理意味論
n 型理論 n 型付きラムダ計算、多相型、オブジェクト指向型
Ichiro Satoh
代表的な計算モデル
n (逐次)計算モデル: n 抽象機械計算モデル n 関数型計算モデル n 論理型計算モデル n 項書き換え型計算モデル
n (並列分散)計算モデル n 抽象機械計算モデル n プロセス代数(プロセスカルキュラス) n イベント機械モデル(ペトリネット)
3
Ichiro Satoh
なぜ、並列分散計算モデルなのか
n ここ数年は並列分散計算モデルに特化しています。 n 並列分散計算モデルとは
n 複数同時に実行されるシステム n システム間通信
n 理由: n Webをはじめ通信する計算システムばかり n クラウドコンピューティングなど複数サーバによるシステム構成 n PCやスマートフォンではマルチコアがあたりまえ n 実世界は複数の実体が同時並列に動いている
Ichiro Satoh
スケールアップよりスケールアウト
n スケールアップ n 少数の高性能コンピュータ
n スケールアウト
n 多数の低性能コンピュータ
n 経験則:
n 1万台サーバのデータセンタは、1千台のデータセンタより、 規模当たりのコストは5~7倍安い
Ichiro Satoh
計算システムの変遷
n 逐次型計算システム(1950年) n マルチタスク計算システム(1970年) n クライアントサーバ計算システム(1990年) n Webベース計算システム(2000年) n クラウドコンピューティング(2008年)
インターネット
膨大なサーバ群
クラウドコンピューティング
ここ数年で計算システムは大きく変わっている
Ichiro Satoh
4
Ichiro Satoh
パブリッククラウド
n 所有から利用へ n クラウドインフラ上の仮想環境、プログラム実行環境、サービスを利用
n 低コスト n クラウドインフラは多数サーバを少人数・一括管理(1万5千台に管理者1人)
n 従量課金制 n 使った分を使っただけ利用料を支払う(固定費から変動費に)
n スケールアウト性 n 必要なときに必要な計算リソースを利用可能
n 世界規模のコンピュータ n 世界各所の巨大データセンターでアプリ・データを多重化 n 自然災害や大規模停電に対応
Ichiro Satoh
パブリッククラウドの構成
n 数十万台のサーバから構成 n 計算リソースは事実上無限大
n サーバ故障を前提にした運用 n データ・アプリケーションの多重化
分散ストレージ
ストレージ サーバ
ストレージ サーバ
ストレージ サーバ
ストレージ サーバ
データの複製の複数サーバで保持
非同期データ複製・更新
ライブラリ ライブラリ
仮想マシン
アプリケーション アプリケーション
ライブラリ ライブラリ
仮想マシン
アプリケーション アプリケーション
インターネット
クライアント
Ichiro Satoh
高信頼性よりも多重化
n クラウドコンピューティングのシステム構成・運用 n サーバ台数が増えると、故障も増える
n 一日辺りの故障率(Googleのデータセンター):0.55% n サーバ数が多いので、一日に数千台が壊れている
n 高信頼性ハードウェアは高価 n (低信頼な)コモディティハードウェアを数でカバー
n 故障を前提にしたシステム構成 n データや処理を多重化して、部分的故障を隠蔽 n サーバ管理の集約化・自動化、故障対応コスト削減
Ichiro Satoh
大規模計算センター
n データセンターは「規模の経済」
中規模(1000台クラス) 大規模(5万台クラス) 倍率
通信コスト(1Mbpsの通信回線あたり)
月額95ドル 月額13ドル 7.1倍
ストレージコスト(1GBの容量あたり)
月額2.2ドル 月額0.40ドル 5.7倍
管理コスト(一管理者による管理台数)
140台 1000台以上 7.1倍
10万台から100万台のサーバ
n 多数のサーバ n 従量制(Pay-per-use) n 事実上、無限大の計算リソース n バックアップや運用はインフラ任せ
5
Ichiro Satoh
メニーコアプロセッサ
n マルチコアプロセッサはあたりまえ n Intel Xeon Phiはx86コアを60個搭載
n CPU+GPUアーキテクチャ n 汎用コアとGPUをリングバス結合
n CPU+FPGA n 汎用コアと再構成論理回路
n ヘテロコア
Ichiro Satoh
Intelのメニーコア化 n Intel Xeon Phiはx86コアを60個搭載
Ichiro Satoh
いまどきの計算
n 超大規模な分散コンピューティングシステムがあたりまえ n 多数のコンピュータで分散処理 n 計算よりも問題分割が重要
n プロセッサはマルチコア以上があたりまえ n 並列計算機の方が普通 n 力業的な計算でもなんとかなる
n ネットワーク接続はあたりまえ n 計算よりも通信
n 低消費電力 n 消費電力当たりの性能
n 授業では分散システムのための計算モデルを中心にして扱う
Ichiro Satoh
計算モデルの必要性
n 計算機のハードウェア n 複雑すぎて扱えない
n CやPascalなどで書かれたプログラム n 数学的な厳密さを持つとは限らない
n プログラムを入力から出力を得るものとする n 例:数学的な関数 n ただし、実際に入力を与えても、その答え(出力)が導けるとは限らない
6
Ichiro Satoh
講義の目標
n 各種の計算モデルについて学ぶこと n 計算の数学的な取り扱いに慣れること n 計算モデルを通じて計算という概念を理解すること n ものの原理を見抜くセンスを養うこと
Ichiro Satoh
授業資料のダウンロード
http://ichiro-satoh.jp/lectures/model/2013/!
Ichiro Satoh
履修者への質問
n 講義内容とレベルは履修者の背景知識と関心により決める
n 履修者の背景知識に関する質問 n 集合または代数論の講義の履修(有/無) n オートマトンの講義の履修(有/無) n 一階述語論理の講義の履修(有/無) n 計算モデルに関する講義の履修(有/無)
Ichiro Satoh
計算モデルとは
n 国立情報学研究所
n 佐藤一郎 n E-mail: [email protected]
7
Ichiro Satoh
計算モデル
n 計算モデルの必要性 n 世の中の情報処理システムは非常に複雑 n この情報処理システムがどのような原理に基づくかを知るには数学的基盤を持つ抽象的な枠組みを導入する必要がある。
n 情報処理システムの抽象的な枠組み=計算モデル
n 計算モデルを通じて「計算」という概念を明確化する
Ichiro Satoh
「計算」とは
n 「計算」とは、 n ある「アルゴリズム」に基づいて、ある基本的な手順を実行し目的とする結果を得る作業
n しかし、実際の情報処理システムは複雑であり、本来の基本原理である「計算」が不明確
n 数学的な裏付けをもつ抽象的な枠組み(=計算モデル)を導入し、 n 記号の書き換えとして計算を再現する
Ichiro Satoh
アルゴリズムとは
n 「アルゴリズム」とは n 計算手順のこと。基本的な実行単位をどのような順序で実行するかを示したもの。
n 客観的で、実行可能な方法。 n アルゴリズムを特定の計算機で実行できるように表現したもの=「プログラム」
Ichiro Satoh
計算の量
n どうやって計算の量を測るのか? n ある人に計算させてその時間を測る(方法1) n 特定の作業、手順に着目してその実行回数を数える(方法2)
n 計算量 n 時間計算量(time complexity)
n 特定の作業の実行回数を数えたもの。
n 領域計算量(space complexity) n 記憶領域の消費量の目安。単位としてビット、ワード、バイト、レジスタなどをきめて、その消費量を示す。
n 先の例では、変数の数など。
8
Ichiro Satoh
計算モデルの必要性
n 計算機のハードウェア n 複雑すぎて扱えない
n CやPascalなどで書かれたプログラム n 数学的な厳密さを持つとは限らない
n プログラムを入力から出力を得るものとする n 例:数学的な関数 n ただし、実際に入力を与えても、その答え(出力)が導けるとは限らない
Ichiro Satoh
代表的な計算モデル
n (逐次)計算モデル: n 抽象機械計算モデル n 関数型計算モデル n 論理型計算モデル n 項書き換え型計算モデル
n (並列分散)計算モデル n 抽象機械計算モデル n プロセス代数(プロセスカルキュラス) n イベント機械モデル(ペトリネット)
Ichiro Satoh
自然現象と計算
n 自然現象を計算として捉える n 既存手法ではえられない知見をえることがある
n 自然現象を計算機として捉える n 一般のコンピュータよりも高性能なこともある。
n 例:DNAコンピューティング
n 自然現象が計算システムのヒントになることがある 宇宙はコンピューターだ──と言われてもピンとこないかもしれません。でも本当なんですよ。プログラムは「物理法則」。計算しているのは「自らの構造」。かの天才・ホーキングが自説を修正したように,何でも吸い込むブラックホールでさえ,ちゃんと計算結果を出力しているのです
Ichiro Satoh
例:DNA計算(DNA computing)
n ���Leonard Adleman (1994) n 分子生物学的な実験手法による有向ハミルトン経路問題の解法を発表
n 経路問題をDNAの塩基配列として表現 n 分子化学的操作のみによって変化(計算), n 大量の分子が並列的に化学反応をおきる →超並列性
9
Ichiro Satoh
例:Ambient Calculus
n 細胞(膜)の変異を表す計算モデル
n 構文
n 公理
n 推論
Ichiro Satoh
チューリングマシン n A.M.チューリングが提案した仮想機械 n すべてのプログラム内蔵計算機をシミュレーションできる機械 n 基本的な動作(特定の作業)
n テープの読み込み n テープの書き込み n テープの送り、戻し n 内部状態の変更
n 記憶領域 n 内部記憶 n テープ(外部記憶)
Ichiro Satoh
チューリング機械モデル
n 計算する機械の本質を定義した n (1)はじめに計算の手順を一種の規則として記憶する n (2)与えられたデータに上の規則を適用し、1ステップづつ計算を行う
n 1ステップの動作は、データを読み込んで簡単な計算を行い、必要に応じて結果を計算用紙に書きとめたあと、いくらかの必要な情報を記憶して次のステップへ進む。
n ここで記憶する情報は、前のステップで得られた結果のほか、今どの段階の計算をしているかの情報なども含む。
n 具体的な機械のイメージで実現
両方向に無限に長い1本のテープ 1マスに1つの記号が書かれる
テープを操作しながら規則に従って計算を行う本体 内部状態((1)の規則と(2)の情報)が記憶される
Ichiro Satoh
チューリング機械の例 n 具体的なチューリング機械
n 例:自然数kの10進表現を与えられたとき、k+1の10進表現を得る機械M
n Mのテープ記号の集合A={□、0、1、..9} n Mの内部状態の集合Q={q0、q1、q2、q3} n Mの規則を表す関数T(以下の遷移図)
q1
q0
q3
q2
a/a、+1 (a:□以外 の記号)
9/0、‐1 a/a、‐1 (a:□以外 の記号)
a/a+1、‐1 (a:□、9 以外の記号
□/1、0
□/□、+1 □/□、‐1
読み取った記号
書き込む記号
ヘッドの移動方向 ‐1:左 +1:右 0: 移動せず
10
Ichiro Satoh
チューリング機械モデルの計算 n 具体的なチューリング機械での計算ステップ
2 5 9
q1
2 5 9
q1
2 5 9
q1
2 5 9
q1
2 5 9
q2
2 5 0
q2
2 6 0
q3
2 6 0
2 5 9
q0
q3
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
Ichiro Satoh
練習
n 次の入力をチューリング機械で実行せよ
1 2 3
q1
(1)
2 9 9
q1
(2)
9 0 9
q1
(3)