並列計算と並列計算機

                   - 2 -

並博士:前回から「並列計算と並列計算機」というテーマで
    話をすすめているのじゃが、どこまで話したかな?

列くん:はい、現在の大規模数値計算プロジェクトで要求されている
    計算の回数はどれくらいかということでした。それと
    一体どういう計算があるのかということも知りたいのですが・・・

並博士:ではまず、計算回数についてじゃが例えば、いわゆる「新プログラム」の
    一つとして採択された

      「専用並列計算機による「場の物理」の研究」
      (代表者:筑波大学計算物理学研究センター長 岩崎洋一)

    の平成6年状況報告書によると、ある物理量の計算のために約100京回の
    演算が必要とされているな。前回の例の1億回とは随分違うじゃろ。

列くん:えっと、何ですって?100京?それ何ですか?
    俗にいう、天文学的数字というやつですか?

並博士:いやいやこれは決して夢の数字とかではないのじゃ。現実に目の前にある
    必要演算数をまじめに出しただけなのじゃ。
    京とは10の16乗のことで、兆の1万倍、100京は10の18乗のことじゃ。
    さて、では先程と同じ質問じゃが、この演算を実行するためには
    君の高性能パソコンでは一体どれくらいの時間がかかるかな?

列くん:えーと、前回と同じ計算だから・・・

    100(京回) ÷ 3(千万回/秒) = 300億秒

    ですね。ひえー、これも想像できない。えーと、1時間は3600秒、1日は
    24時間、1年は365日だからざっと1000年ですね、つまりこの計算が
    完了するのは西暦3000年ということになりますね。
    そのころは僕も博士もいませんから、今からそんな未来のことを考えても
    しかたがないので、やっぱりこの連載は今回で終わりですね、博士。

並博士:何を言っているんじゃ、単に大規模数値計算の現状を言ったまでじゃ。

列くん:でも、読者も皆さんもよくご存じだと思いますが、ペンティアムという
    のは相当な性能をもっているんですよ。それでも1000年かかるような
    計算を本気でやろうって人はまずいないと思うのですが・・・

並博士:そうじゃろうそうじゃろう、そこで並列計算機の登場となる、つまり
    これからがこの連載の核心になるというわけじゃ。
    その前に参考のために俗にいうところのスーパーコンピュータの
    現在の性能について触れておこう。

列くん:あ、そうですね、何も難しい並列計算をやらなくてもまだそういう
    可能性が在りました。最初からこれを使えばよかった・・・

並博士:なにをぶつぶつ言っておるのじゃ。
    さて、最近のもっとも高性能のスーパーコンピュータの性能じゃが
    大体 10GFlops といったところじゃろな。ではまた問題、これなら
    上の100京回の演算をするのにどれくらいでできる?

列くん:また問題ですか、えーと、同じ要領でやると・・・

    100(京回) ÷ 100(億回/秒) = 1億秒

    です。これは約30年ですね。
    げげ、これだと生きているうちに結果がやっと分かるといった
    ところですね。あっ、失礼、博士はそのころは多分・・・

並博士:何を言っているのじゃ、だからここからが核心だといったじゃろ。
    つまり、現在最高性能のスーパーコンピュータでさえ、30年もかかる
    ような計算にどう立ち向かったらいいのかということじゃ。

列くん:はあ、30年待つしかないのでは?

並博士:それではわしは結果が見られない、ではなくてじゃな、話はこうじゃ。
    例えば、最高性能のスーパーコンピュータを30台使ったとしよう。
    もしもとくべき問題が30台に完全に分割できれば話は簡単じゃな、
    結果を1年後には手にすることができる。たとえ完全でなくとも
    問題を有効に分割できれば、1年あるいは2年後にはOKじゃ。

列くん:そううまくいきますかね?
    だってそうでしょう、スーパーコンピュータというのは大変高価なもの
    でしょう。その最高性能のものとなると、到底手に入らないと思います。
    それ以前に、地球規模で考えても30台あるかどうか疑わしいものです。
    ましてやそれらを1年間占有して使うなんて、30年待つよりも
    難しいことだと思いますが・・・

並博士:なるほど、そこは言われる通りじゃ。
    さて、では現実にこのような状況にいる研究者たちは一体どうしていると
    思うかね?

列くん:30年待つか、技術の進歩を待つかですね。最近の進歩たるや
    想像を絶するものがありますからね。

並博士:そこが違うのじゃ、この状況に追いこまれた場合にとられている
    典型的な方法について3つ紹介しよう。(表3)を見てほしい。

         (表3)計算速度を得るための現実的な方法
    ----------------------------------------------------
          (1)最高性能のスーパーコンピュータはちと高価なので
        ランクの下のスーパーコンピュータを100台くらい
        並列に使う。
     (2)ランクが下だとは言ってもスーパーコンピュータはやはり
        高価なので、ワークステーションなどによく使われており
        安定でしかも単価が下がってきたCPUを1000個ほど
        必要個数並列に使う。
     (3)汎用のCPUだと様々な機能がついているために無駄な経費が
        かかっているのは明白である。従って、余分な機能を取り去り
        つまり計算に適したハードを安価で作り、それらを並列に使う。
        たとえ1個の性能が低くても単価が安ければ個数で性能を
        出すことができる。
    ----------------------------------------------------
    
    ざっと、こんなところじゃ。

列くん:理屈は分かりました。でも本当に上のようなことを実行している人が
    いるなんて、到底信じられません。いたら直接会って、話を聞きたい
    くらいです。

並博士:分かった、では話を聞かせてあげよう。読者の皆さんもじゃ。

列くん:本当ですか?嘘は駄目ですよ。

並博士:わかったわかった。大丈夫じゃ。