kibayos beaker-070829

24
meeting@KARC meeting@KARC 極超並列計算への夢 - 非ノイマン型計算によるアプローチ - 2007/8/29 2007/8/29 BBR 吉田 幹

Transcript of kibayos beaker-070829

Page 1: kibayos beaker-070829

meeting@KARCmeeting@KARC

極超並列計算への夢- 非ノイマン型計算によるアプローチ -

2007/8/292007/8/29BBR 吉田 幹

Page 2: kibayos beaker-070829

今日のお題

まず、計算の話

そして 並列処理の話そして、並列処理の話

論理プログラムに着眼

分離導ユニファイア分離導出

UPモデル

「考えるビーカー」

分子計算への期待分子計算への期待

質疑応答&ブレスト

2

Page 3: kibayos beaker-070829

計算の理論的背景

チャーチの提言(Church’s thesis)「一般帰納的関数を計算可能な関数という」般帰納的関数を計算可能な関数という」により定義

等価な数学モデルと言語等価な数学モデルと言語

チューリングマシン→ 手続き型言語→ 手続き型言語

帰納的関数(recursive function)→ 関数型言語関数型言語

第一階述語論理(first-order predicate logic)→ 論理型言語

計算の意味論

操作的意味 表示的意味 証明論的意味 最小不動点

3

操作的意味、表示的意味、証明論的意味、最小不動点意味など

Page 4: kibayos beaker-070829

よくある並列処理

ベースはチューリングマシンフォン・ノイマンボトルネックとの戦い

分類対称性

扱いやすいのは 物理メモリを共有する対称型(SMP: Symmetric Multi扱いやすいのは、物理メモリを共有する対称型(SMP: Symmetric Multi Processing)

命令とデータの流れMIMD(Multiple Instruction/Multiple Data)MIMD(Multiple Instruction/Multiple Data)

複数の命令を複数のコンテキストで実行。通常のマルチプロセッサ

SIMD(Single Instruction/Multiple Data)同一の命令を複数のコンテキストで実行 ベクトル計算機同 の命令を複数のコンテキストで実行。ベクトル計算機

プロセッサの結合密結合

バス結合 結合できるPEの数に限界バス結合 → 結合できるPEの数に限界

クロスバースイッチ → PE数の2乗に比例して回路の複雑度がアップ

疎結合高速ネットワ クによりクラスタを結合 GRIDなど

4

高速ネットワークによりクラスタを結合。GRIDなど

Page 5: kibayos beaker-070829

データフロー型

よくある並列処理では並列度が出ない

フォン・ノイマンとは異なるアーキテクチャフォン・ノイマンとは異なるアーキテクチャ

フォン・ノイマンの場合命令を順番にフェッチし 実行する命令を順番にフェッチし、実行する

命令を中心とした処理体系

データフローの場合デ タフロ の場合トークンをやり取りする形で処理が進行

ノードではすべてのトークンが揃ったところで発火。次のノードへがトークンが転送される

データの流れを中心とした処理体系

PEとして より小さな演算器が使えるため PEをたくPEとして、より小さな演算器が使えるため、PEをたくさん用意することで、超並列処理が可能になる

5

Page 6: kibayos beaker-070829

データフロー型

問題は、

伝播するデータフローをどう制御すべきか伝播するデ タフロ をどう制御すべきか

プログラミングが容易ではない

ベクトル計算と同じで 通常のプログラムをデータフローベクトル計算と同じで、通常のプログラムをデ タフロ化するコンパイラを作るのは簡単ではない

計算モデルがないなど、実践が先行し理論的なアプロー計算モデルがないなど、実践が先行し理論的なアプロチが追いついてこないのも問題?

6

Page 7: kibayos beaker-070829

そこで、論理プログラム

チューリングマシン(フォンノイマン型モデル)を前提にしていても埒が開かない

帰納的関数だと逐次的な評価順序があるが、第一階述語論理なら逐次的な記述は一切ない

プログラムは、ANDとORで結合されたAtomの集合

計算は充足不可能性の証明(反駁, refutation)導出(resolution)と呼ばれるマッチング処理により計算が進む導出(resolution)と呼ばれるマッチング処理により計算が進む

導出には、AND並列とOR並列の2種類の並列性が内在する

導出は2つの節(clause プログラムのprocedureのようなも導出は2つの節(clause, プログラムのprocedureのようなもの)から1つの節を得るような処理のため、データフロー型との相性もよい

resolutionclause

clause

7

eso ut oelement

clause

clause

Page 8: kibayos beaker-070829

でも歴史は...そう進まなかった

1982~1992年頃のお話第5世代プロジェクトが起こり、超並列AIマシンの開発が国家目標に

がPrologという言語が流行ってしまった不完全な導出の実装により完全性が欠如

完全性の補償のため プログラマが余計な制御文を書く羽目に完全性の補償のため、プログラマが余計な制御文を書く羽目に

節とatomのならびに逐次的な意味を与えてしまった。このため並列性がことごとく破壊される

並列処理の方式研究は AND並列の困難さとOR並列の爆並列処理の方式研究は、AND並列の困難さとOR並列の爆発に阻まれる

GHCというデータフローの扱いやすい言語が出てくるなど、並列化のGHCというデ タフ の扱いやすい言語が出てくるなど、並列化の対象が別の方向に...

第5世代プロジェクトは、ICOTを中心に精力的に研究が進んだが 応用や発展的研究が出ないまま終わりを迎えたんだが、応用や発展的研究が出ないまま終わりを迎えた

論理プログラムにおける並列処理の研究は頭打ちに論理プログラムにおける並列処理の研究は頭打ちに

8

論理プログラムにおける並列処理の研究は頭打ちに...論理プログラムにおける並列処理の研究は頭打ちに...

Page 9: kibayos beaker-070829

その頃、私は...1981年 論理プログラムの並列処理を研究テーマに選ぶ

所属の研究室では以前から論理プログラムの計算についての研究を行っていた(M1の時期)を行っていた(M1の時期)

1982年 「考えるビーカー」を着想この年、第5世代プロジェクト起こる

1983年 フ イア分離導出の定式化を開始1983年 ユニファイア分離導出の定式化を開始combination演算の可換性の証明に苦労する結局、定式化と証明に3年費やす論文誌に採択されるのが、さらに3年後の1989年

1984年 論理プログラムの計算モデル(UPモデル)を発案超並列に向く(逐次処理部分がない)超並列に向く(逐次処理部分がない)unifierだけで計算を完結(シンプル)ある意味、「考えるビーカー」のために作ったもの

評価は、得られず。(時すでに遅し。発表するも理解を示してくれる人なし)

9

得られず。(時すでに遅し。発表するも理解を示してくれる人なし)旬を逃し、そのまま凍結(吉田のライフワークに)

Page 10: kibayos beaker-070829

ユニファイア分離導出(U-導出)とは

きっかけはAND並列と両方向推論(みんな難しいというからトライしてみた...)

並列とは ll f ll と続く手続きを並列 行うも f 副AND並列とは、call f, call g,..と続く手続きを並列に行うもの。fの副作用がgに影響するため困難とされていた

推論には帰結から進めていくもの(トップダウン)と公理から積み上げていくもの(ボトムアップ)がある。両方から詰めていくのが両方向推論。meet処理が難しい

問題を分析すると、問題を分析すると、AND並列の難しさは、導出の持つ逐次性にある

両方向推論の難しさは、論理的に同等であるトップダウンとボトムアップの推論過程が異なるものと捉えられてしまうところにあるアップの推論過程が異なるものと捉えられてしまうところにある

U-導出とは、大雑把に言えば、導出の持つ逐次的な制約をとっぱらったものぱら たも

これにより、AND並列と両方向推論の困難さがなくなり、「一般化計算モデル」という新しい概念が生まれる

でも 見かけは導出と同じなので よほど挑戦的なことをしないとあり

10

でも、見かけは導出と同じなので、よほど挑戦的なことをしないとありがたみは出ない

Page 11: kibayos beaker-070829

U-導出の特徴U-導出は導出と互換な拡張

unifierを別に扱える(+はcombinatorと呼ぶ演算)

(A <- B, C) λ

導出

θ= mgu(Bλ Pμ)θ

(A B, C) λ

(P <- Q, R)μ

θ= mgu(Bλ, Pμ)

Aλθ <- Qμθ, Rμθ, Cλθ

U 導出

(A <- B, C) λ

U-導出

φ= mgu(B, P)

(P <- Q, R)μφ

11

(A <- Q, R, C)(λ+μ+φ)

Page 12: kibayos beaker-070829

U-導出の特徴

計算木においては、縮約(reduction)に相当する操作

+演算(combinator)に交換則と結合則が成り立つことから、演算( ) 交換則 結合則 成り ら、縮約はどの順序で(さらには同時に)行ってもよい

φ mg (B P)

A <-B, C λ

φ= mgu(B, P)

P <-Q, R μ

A <-Q, R, C λ+μ+φ

縮約reduction

12

Page 13: kibayos beaker-070829

UPモデル

新しい論理プログラムの計算モデルAND/OR木によって表現される計算木がベース/ 表 算

unifierをUP(unifier plate)と呼ぶ記法で表す

並列分散処理、部分計算、一般化計算への応用

基礎となる定義正則ユニファイア木(regular unifier tree)⇒ 解

正則ユニファイア木の縮約過程⇒ 計算⇒ 計算

定義UPグラフUPグラフ⇒ 計算状態

UPグラフの縮約(展開と結合)により計算が進行

13

UPグラフの縮約(展開と結合)により計算が進行

Page 14: kibayos beaker-070829

SLD導出の例プログラム

F: append([], x, x) <-R: append([x|y], z, [x|w]) <- append(y,z,w)

G0: <- append([1,2], [3], q)計算

append([x|y], z, [x|w]) <- append(y,z,w)

σ1={1/x, [2]/y, [3]/z, [1|w]/q}

G : <- append([2] [3] w)G1: <- append([2], [3], w)

append([x’|y’], z, [x’|w’]) <- append(y’,z’,w’)

σ2={2/x, []/y, [3]/z, [2|w’]/w}

G2: <- append([], [3], w’)

append([], x”, x”)

σ3={[3]/x”, [3]/w’}

G3: □

14

解σ1σ2σ3|{q}={[1,2,3]/q}

Page 15: kibayos beaker-070829

AND/ORグラフでは

<-append([1,2], [3], q)

G0:

節ノード

append([x|y], z, [x|w]) <-R: ORアーク

ANDアーク

append([x|y], z, [x|w]) <append(y, z, w)

append([], x, x) <-F:

G0G0

G GG1

G G

→ 展開⇒ 縮約

計算 = グラフの展開と縮約

G0

RR’

R

G1G1

RR”

R

G2 G2

RF

G2G3

⇒→ → ⇒ →

15

FR

FF

R

FF

F

Page 16: kibayos beaker-070829

UP (Unifier Plate)節とユニファイアのテンプレート表現

UP(節ノード) UP(ORアーク)

q

G0 1 [2] [3] ・1

G0-R

q

x

F ・ ・R-R

x y z w

RR

y z wR-F

[]

16

Page 17: kibayos beaker-070829

UPグラフ

q

G0

AND/ORグラフと違い、変数とtermしか現れないq い

combinationの失敗により、不要なORアーク

1 [2] [3] ・1

より、不要なORア クは除外される

x y z w

R

y z w・ ・

x

[]

17

F

Page 18: kibayos beaker-070829

UPグラフの縮約

グラフの展開・縮約過程でUPのcombinationが起こる

一連のcombinationの結果、解が得られるq

連の の結果、解 得られる

q

1 [2] [3] ・1 [2] [3] ・

1

q

x y z w

y z w

y z w

q

y

・ ・

[] [3] ・

[1,2]

y z wq

x y z w

y z wx

[]

[1,2,3]⇒

18

x

Page 19: kibayos beaker-070829

「考えるビーカー」

液体計算機

生体における生化学反応にヒント体 おける 化学反応 ント

combinatorを酵素、UPを反応によって生まれる高分子化合物とみなすと、生化学反応はある種の計算とみなせる

計算は以下の手順で進むcombinatorの働きをする高分子化合物(酵素)の溶液を用意

factおよびruleに相当するUP(高分子化合物)を数滴落としておく(この時点で計算は進む)

goalに相当するUP(高分子化合物)を数滴落とすと 目的の計算がgoalに相当するUP(高分子化合物)を数滴落とすと、目的の計算がスタートする

答えは、 UP(高分子化合物)で得られる

答えとなる高分子化合物に反応する酵素か何かを用意しておくことで、計算結果を得ることができる

19

Page 20: kibayos beaker-070829

「考えるビーカー」

シリコンのコンピュータでは達成不能な並列性が得られる

問題は山ほどある(というか、作れるとは思えない)問題は山ほ ある( う 、作れる は思えな )高分子どう作る?I/Oは? resetの方法は?

まあ、難しい問題に対して、YES/NOが返れば十分(リトマス試験液のような)

20

Page 21: kibayos beaker-070829

分子計算への期待

極超並列計算のためのポテンシャルが高い

既存のコンピュータに縛られる必要はない既存の ン タ 縛られる必要はな

計算不可能世界へのチャレンジもあるハードウェアが異なれば、計算原理も変わる

例えば、ニューラルネットワークのプログラミングは全然違うもの

分子計算の特性から新たな計算原理を作ってもよい

今 計算 能世界 枠組 人 知能は き な し今の計算可能世界の枠組みで人工知能はできっこないし...

生化学反応との親和性が高い薬品開発にも影響を与える薬品開発にも影響を与える

シナプスとのインタフェースが取れれば、SFちっくな話に攻殻機動隊の世界攻殻機動隊の世界

身体障害者には朗報

21

Page 22: kibayos beaker-070829

余談:SFといえばバイオ・ニューラル・ジェルパック

スタートレック脳を模した手のひらに乗るほどの小さなジェルパック脳を模した手のひらに乗るほどの小さなジェルパックたくさん集めて、バイオ神経回路と呼ばれるコンピュータ・ネットワーク・システムを形成風邪を引いたりするが ワクチンや熱消毒などを使った治療が可能風邪を引いたりするが、ワクチンや熱消毒などを使った治療が可能である

有機コンピュータ新世紀エヴ ンゲリオン新世紀エヴァンゲリオン第7世代コンピュータ培養した神経細胞を利用して構築するコンピュータ

ピ3台のスーパーコンピュータで構成されるMAGIのための技術

攻殻機動隊もバイオシステムが前提?

なんか、どれも計算モデルは、ニューラルネットワーク(or パーセプトロン)だなあ...

22

Page 23: kibayos beaker-070829

プログラミングと並列度の関係

通常は比例

並列論理計算の狙いは、プログラミングを犠牲にしないで、並列論理計算の狙いは、プ グラミングを犠牲にしないで、高い並列性を得ること

いずれの場合にせよ、計算モデルの理論的なつめは大事

並列度

データフロー

ニューラルネットワーク

並列論理計算(分子計算)

非ノイマン型 非ノイマン型ノンアルゴリズミックデ タフ

GRID

非ノイマン型

ノンアルゴリズミック

通常の計算

ベクトル計算

ノイマン型

23プログラミングの困難さ

Page 24: kibayos beaker-070829

では、質疑応答&ブレストに。ご清聴あ が ござご清聴ありがとうございました。