狠狠撸

狠狠撸Share a Scribd company logo
meeting@KARC



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



                2007/8/29
               BBR 吉田 幹
今日のお題
まず、計算の話
そして、並列処理の話
そして 並列処理の話
論理プログラムに着眼
ユニファイア分離導出
      分離導
UPモデル
「考えるビーカー」
分子計算への期待
質疑応答&ブレスト




             2
計算の理論的背景
チャーチの提言(Church’s thesis)
  般帰納的関数を計算可能な関数という」
「一般帰納的関数を計算可能な関数という」
により定義
等価な数学モデルと言語
 チューリングマシン
 → 手続き型言語
 帰納的関数(recursive function)
 → 関数型言語
 第一階述語論理(first-order predicate logic)
 → 論理型言語
計算の意味論
 操作的意味、表示的意味、証明論的意味、最小不動点
 操作的意味 表示的意味 証明論的意味 最小不動点
 意味など
                                        3
よくある並列処理
ベースはチューリングマシン
 フォン?ノイマンボトルネックとの戦い
分類
 対称性
     扱いやすいのは 物理メモリを共有する対称型(SMP: Symmetric Multi
     扱いやすいのは、物理メモリを共有する対称型(SMP:
     Processing)
 命令とデータの流れ
     MIMD(Multiple Instruction/Multiple Data)
         複数の命令を複数のコンテキストで実行。通常のマルチプロセッサ
     SIMD(Single Instruction/Multiple Data)
         同 の命令を複数のコンテキストで実行。ベクトル計算機
         同一の命令を複数のコンテキストで実行 ベクトル計算機
 プロセッサの結合
     密結合
         バス結合 → 結合できるPEの数に限界
         クロスバースイッチ → PE数の2乗に比例して回路の複雑度がアップ
     疎結合
         高速ネットワ クによりクラスタを結合 GRIDなど
         高速ネットワークによりクラスタを結合。GRIDなど


                                                4
データフロー型
よくある並列処理では並列度が出ない
フォン?ノイマンとは異なるアーキテクチャ
 フォン?ノイマンの場合
  命令を順番にフェッチし、実行する
  命令を順番にフェッチし 実行する
  命令を中心とした処理体系
 デ タフロ の場合
 データフローの場合
  トークンをやり取りする形で処理が進行
  ノードではすべてのトークンが揃ったところで発火。次のノードへ
  トークンが転送される
      が
  データの流れを中心とした処理体系
PEとして、より小さな演算器が使えるため、PEをたく
PEとして より小さな演算器が使えるため PEをたく
さん用意することで、超並列処理が可能になる

                              5
データフロー型
問題は、
 伝播するデ タフロ をどう制御すべきか
 伝播するデータフローをどう制御すべきか
 プログラミングが容易ではない
 ベクトル計算と同じで、通常のプログラムをデ タフロ
 ベクトル計算と同じで 通常のプログラムをデータフロー
 化するコンパイラを作るのは簡単ではない
 計算モデルがないなど、実践が先行し理論的なアプロ
 計算モデルがないなど、実践が先行し理論的なアプロー
 チが追いついてこないのも問題?




                          6
そこで、論理プログラム
チューリングマシン(フォンノイマン型モデル)を前提にしてい
ても埒が開かない
帰納的関数だと逐次的な評価順序があるが、第一階述語
論理なら逐次的な記述は一切ない
 プログラムは、ANDとORで結合されたAtomの集合
 計算は充足不可能性の証明(反駁, refutation)
 導出(resolution)と呼ばれるマッチング処理により計算が進む
 導出には、AND並列とOR並列の2種類の並列性が内在する
導出は2つの節(clause,
導出は2つの節(clause プログラムのprocedureのようなも
の)から1つの節を得るような処理のため、データフロー型と
の相性もよい

         clause
                  resolution
                   eso ut o    clause
                   element
         clause
                                        7
でも歴史は...そう進まなかった
1982~1992年頃のお話
  第5世代プロジェクトが起こり、超並列AIマシンの開発が国家目標に
Prologという言語が流行ってしまった
           が
  不完全な導出の実装により完全性が欠如
   完全性の補償のため、プログラマが余計な制御文を書く羽目に
   完全性の補償のため プログラマが余計な制御文を書く羽目に
  節とatomのならびに逐次的な意味を与えてしまった。
  このため並列性がことごとく破壊される
並列処理の方式研究は AND並列の困難さとOR並列の爆
並列処理の方式研究は、AND並列の困難さとOR並列の爆
発に阻まれる
  GHCというデ タフ
  GHCというデータフローの扱いやすい言語が出てくるなど、並列化の
              の扱いやすい言語が出てくるなど、並列化の
  対象が別の方向に...
第5世代プロジェクトは、ICOTを中心に精力的に研究が進
んだが、応用や発展的研究が出ないまま終わりを迎えた
んだが 応用や発展的研究が出ないまま終わりを迎えた

論理プログラムにおける並列処理の研究は頭打ちに...
論理プログラムにおける並列処理の研究は頭打ちに
                                  8
その頃、私は...
1981年 論理プログラムの並列処理を研究テーマに選ぶ
   所属の研究室では以前から論理プログラムの計算についての研究
   を行っていた(M1の時期)
1982年 「考えるビーカー」を着想
   この年、第5世代プロジェクト起こる
1983年 ユニファイア分離導出の定式化を開始
        フ イア分離導出の定式化を開始
   combination演算の可換性の証明に苦労する
   結局、定式化と証明に3年費やす
   論文誌に採択されるのが、さらに3年後の1989年
1984年 論理プログラムの計算モデル(UPモデル)を発案
   超並列に向く(逐次処理部分がない)
   unifierだけで計算を完結(シンプル)
   ある意味、「考えるビーカー」のために作ったもの

 評価は、
   得られず。(時すでに遅し。発表するも理解を示してくれる人なし)
   旬を逃し、そのまま凍結(吉田のライフワークに)
                                     9
ユニファイア分離導出(U-導出)とは
きっかけはAND並列と両方向推論(みんな難しいというから
トライしてみた...)
 AND並列とは、call f, call g,..と続く手続きを並列に行うもの。fの副
    並列とは   ll f    ll     と続く手続きを並列 行うも  f 副
 作用がgに影響するため困難とされていた
 推論には帰結から進めていくもの(トップダウン)と公理から積み上
 げていくもの(ボトムアップ)がある。両方から詰めていくのが両方向
 推論。meet処理が難しい
問題を分析すると、
 AND並列の難しさは、導出の持つ逐次性にある
 両方向推論の難しさは、論理的に同等であるトップダウンとボトム
 アップの推論過程が異なるものと捉えられてしまうところにある
U-導出とは、大雑把に言えば、導出の持つ逐次的な制約を
とっぱらったもの
   ぱら たも
 これにより、AND並列と両方向推論の困難さがなくなり、「一般化計
 算モデル」という新しい概念が生まれる
 でも、見かけは導出と同じなので、よほど挑戦的なことをしないとあり
 でも 見かけは導出と同じなので よほど挑戦的なことをしないとあり
 がたみは出ない
                                          10
鲍-导出の特徴
U-導出は導出と互換な拡張
unifierを別に扱える(+はcombinatorと呼ぶ演算)

 導出

   (A <- B, C) λ
                      (P <- Q, R)μ
           θ
                                     θ= mgu(Bλ, Pμ)
                                        mgu(Bλ
      Aλθ <- Qμθ, Rμθ, Cλθ

 U-導出
 U 導出

   (A <- B, C) λ

                      (P <- Q, R)μ
           φ
                                     φ= mgu(B, P)
      (A <- Q, R, C)(λ+μ+φ)

                                                      11
鲍-导出の特徴
     計算木においては、縮約(reduction)に相当する操作
     +演算(combinator)に交換則と結合則が成り立つことから、
      演算(          ) 交換則 結合則 成り     ら、
     縮約はどの順序で(さらには同時に)行ってもよい




               A <-
               B, C   λ
φ= mgu(B,
φ mg (B P)
                                        A <-
        P <-                          Q, R, C   λ+μ+φ
        Q, R    μ
                          縮約
                          reduction




                                                        12
UPモデル
新しい論理プログラムの計算モデル
 AND/OR木によって表現される計算木がベース
      /            表         算
 unifierをUP(unifier plate)と呼ぶ記法で表す
 並列分散処理、部分計算、一般化計算への応用
基礎となる定義
 正則ユニファイア木(regular unifier tree)
 ? 解
 正則ユニファイア木の縮約過程
 ? 計算
定義
 鲍笔グラフ
 ? 計算状態
 鲍笔グラフの縮約(展開と結合)により計算が進行

                                     13
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}
        G1: <- append([2] [3] w)
               append([2], [3],
                       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: □

 解
         σ1σ2σ3|{q}={[1,2,3]/q}
                                                                         14
础狈顿/翱搁グラフでは
                    G0:             <-
                            append([1,2], [3], q)              節ノード

                                                    ANDアーク

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




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


計算 = グラフの展開と縮約                                                            → 展開
                                                                          ? 縮約
              G0                               G1
   G0              G1             G1                  G2        G2
              R’                               R”                         G2
   R    →               ?         R     →                  ?    R     →        G3
              R                                R                          F
   F                              F                             F
              F                                F
                                                                                    15
UP (Unifier Plate)
 節とユニファイアのテンプレート表現


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


         q
  G0                 G0-R   1        [2] [3]       ?
                                               1
         q

         x
  F                  R-R        ?              ?




       x y z w
  R                  R-F        []
        y z w




                                                       16
鲍笔グラフ
                               q                AND/ORグラフと違い、
            G0                                  変数とtermしか現れな
                               q                い
                                                combinationの失敗に
             1   [2] [3]       ?
                                                より、不要なORア ク
                                                より、不要なORアーク
                           1                    は除外される

                 x y z w
        R
                   y z w
?   ?




                                   []


                                            x
                                        F

                                                             17
鲍笔グラフの縮約
          グラフの展開?縮約過程でUPのcombinationが起こる
          一連のcombinationの結果、解が得られる
           連の           の結果、解 得られる
      q


      q                        q
1   [2] [3]       ?
              1       ?   [2] [3]
                                    1
                                            ?


x y z w                   y z w
                                                         q
    y z w
                                                    []   [3]       ?
                                                ?              [1,2]
                           ?            ?
                                                    y z w
                                                                             q
                          x y z w
                                                                       ?
                                                                           [1,2,3]

                                                    []
                           y z w
                                                          x


                                                                                     18
「考えるビーカー」
液体計算機
生体における生化学反応にヒント
  体 おける 化学反応       ント
combinatorを酵素、UPを反応によって生まれる高分子化合
物とみなすと、生化学反応はある種の計算とみなせる
計算は以下の手順で進む
 combinatorの働きをする高分子化合物(酵素)の溶液を用意
 factおよびruleに相当するUP(高分子化合物)を数滴落としておく(こ
 の時点で計算は進む)
 goalに相当するUP(高分子化合物)を数滴落とすと、目的の計算が
 goalに相当するUP(高分子化合物)を数滴落とすと 目的の計算が
 スタートする
 答えは、 UP(高分子化合物)で得られる
 答えとなる高分子化合物に反応する酵素か何かを用意しておくこと
 で、計算結果を得ることができる


                                    19
「考えるビーカー」
シリコンのコンピュータでは達成不能な並列性が得られる
問題は山ほ ある(
問題は山ほどある(というか、作れるとは思えない)
            う 、作れる は思えな )
 高分子どう作る?
 I/Oは? resetの方法は?
まあ、難しい問題に対して、YES/NOが返れば十分
(リトマス試験液のような)




                            20
分子計算への期待
極超並列計算のためのポテンシャルが高い
既存の ン
既存のコンピュータに縛られる必要はない
        タ 縛られる必要はな
計算不可能世界へのチャレンジもある
 ハードウェアが異なれば、計算原理も変わる
 例えば、ニューラルネットワークのプログラミングは全然違うもの
 分子計算の特性から新たな計算原理を作ってもよい
 今の計算可能世界の枠組みで人工知能はできっこないし...
 今 計算 能世界 枠組    人 知能は き  な し
生化学反応との親和性が高い
 薬品開発にも影響を与える
シナプスとのインタフェースが取れれば、SFちっくな話に
 攻殻機動隊の世界
 身体障害者には朗報



                                  21
余談:SFといえば
バイオ?ニューラル?ジェルパック
  スタートレック
  脳を模した手のひらに乗るほどの小さなジェルパック
  たくさん集めて、バイオ神経回路と呼ばれるコンピュータ?ネットワー
  ク?システムを形成
  風邪を引いたりするが、ワクチンや熱消毒などを使った治療が可能
  風邪を引いたりするが ワクチンや熱消毒などを使った治療が可能
  である
有機コンピュータ
  新世紀エヴァンゲリオン
  新世紀エヴ ンゲリオン
  第7世代コンピュータ
  培養した神経細胞を利用して構築するコンピュータ
  3台のスーパーコンピュータで構成されるMAGIのための技術
           ピ
攻殻機動隊もバイオシステムが前提?

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

                                  22
プログラミングと並列度の関係
通常は比例
並列論理計算の狙いは、プ グラミングを犠牲にしないで、
並列論理計算の狙いは、プログラミングを犠牲にしないで、
高い並列性を得ること
いずれの場合にせよ、計算モデルの理論的なつめは大事

並列度
                                   ニューラル
      並列論理計算
                                   ネットワーク
      (分子計算)

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

                             非ノイマン型
               GRID

        ベクトル計算

      通常の計算       ノイマン型




                                   プログラミングの困難さ
                                                   23
では、質疑応答&ブレストに。
ご清聴ありがとうございました。
ご清聴あ が ござ

More Related Content

kibayos beaker-070829