next up previous
Next: About this document

pt

計算科学と「専用」計算機

牧野淳一郎、泰地真弘人

1995年のゴードン・ベル賞を東京大学の我々のグループおよび航空宇宙技術 研究所・山形大学・広島大学のグループが受賞した。

ゴードン・ベル賞は DEC PDP-11 と VAX-11 の設計に携わり、計算機設計者と して有名なゴードン・ベル氏が並列計算技術の推進のために1987年に創設 した賞であり、米国電気電子学会コンピューター協会(IEEE Computer Society)によって運営されている。並列計算機を実用的な科学技術計算に応用 し、その年にもっとも優れた性能を出した人々に与えられる。実効性能、価 格性能比、コンパイラの三つの部門があり、それぞれ応募があったものの中か ら審査で授賞を決定する。高速科学計算の世界のオリンピックともいうべきも のである。毎年米国で開かれるスーパーコンピューティング国際会議の会場で 授賞式および受賞内容の講演が行なわれている。今回もサンディエゴで開かれ たスーパーコンピューティング'95(12月3日〜8日)で発表があった。

性能部門の賞を日本が占めたのは初めてのことである。受賞した計算は、我々 のグループでは自主開発した GRAPE-4 システムで行なった実効速度112ギガフ ロップスのものである。この速度は昨年春の製作途中の計算機で記録したもの で、その後夏には1テラフロップスのピーク性能に到達したものが完成した。 会場では、この完成版のGRAPE-4を用いて529ギガフロップスという世界最高の 速度を達成したことを発表した。これらの計算では、銀河中心にあるブラック ホールペアの進化をシミュレートした。また航空宇宙技術研究所・山形大学・ 広島大学のグループは航技研と富士通の共同開発によるNWT(数値風洞)を使っ てQCD計算をおこない、クエンチ近似の下でグルーオンの閉じ込めを研究し た。彼らは140プロセッサの数値風洞のうち128プロセッサを使用し、ピーク性 能215ギガフロップスのところ179ギガフロップスの実効性能を達成した。

どちらの計算機も特定の科学技術計算向けに、計算機を使う側のアイデアで開 発された、専用計算機というべきものである。この意味で、今回の受賞はエポッ クメーキングなものといえよう。もっともNWTは本来の目的とは別のこともで きるということを示したわけではあるが。ここでは、この受賞を機に、計算科 学、すなわち計算機実験による研究が、計算機そのものの発展とどのように影 響しあってきたかということを振り返り、またこれからどのように発展してい くことが期待されるかということについて考えてみたい。

1940年代終りに ENIAC によって電子計算機の時代の幕が開かれて以来、 科学技術のあらゆる分野において計算機によるシミュレーション、あるいは計 算機実験の果たす役割は急速に大きくなってきた。大きくなってきた原因のう ちもっとも重要なものは、計算機自体の能力の進歩である。

計算機の速度は過去 50 年間の間、ほぼ 10 年で 100 倍の割合で進歩してき ている。 50 年間で 100億倍である。

100億倍の進歩というのは、ほかのどんな技術でもまずあり得ない桁外れなも のである。例えば交通機関では、もっとも原始的な手段、すなわち歩くことに 比べ、ジェット旅客機で 200 倍、スペースシャトルでも 10,000倍程度の速度 向上を達成しているに過ぎない。現在の最高速の計算機の速度を人間と比べれ ば、計算速度は控え目に見積もっても 倍は違う。ENIAC ですら、当 時の電気/機械式計算機、たとえば Harvard Mark-I やZuse の Z4 に比べて 1000倍近い速度向上を実現していた。

計算機の速度の指数関数的な向上のために、多くの分野で計算機実験の果たす 役割はますます大きく、また多様になりつつある。

極端な例としては米サンディア国立研究所に今年導入される予定の超並列機が あげられよう。このシステムはピーク性能で 1.8 テラフロップスを達成する 見込みであるが、主な研究目的はバーチャル・テスティング、すなわち現実の 核実験を置き換えることと発表されている。このような例は特殊なものではあ るが、CFD(計算流体力学)は、実用的なレベルで実験を置き換えられるレベ ルに到達しつつある。ここでは、計算機実験の第一の目的は、経済的、あるい は政治的な理由で実験が困難なシステムの振舞いを調べるということである。

天文学・天体物理学では、通常の意味での実験ができないシステムを扱う関係 上、計算機実験がほとんど唯一の実験手段である。炭酸ガス濃度の増大による 温暖化のシミュレーションのようなものも、原理的に実験ができないシステム の研究であるということができる。格子 QCD 計算でも、実際上実験ができそ うにないシステムの振舞いを調べている。

これらに対し、実験ができないわけではないが、理論的な理解が困難なシステ ムの振舞いを調べる、あるいはその振舞いの本質的な部分を理解するために計 算機実験を使うということも広く行なわれている。カオスやソリトンなどの非 線形力学の研究はこの例である。数理生態学の分野での様々なモデルを使った 研究もここに分類されよう。

また、人工生命の研究のように、全く現実に対応するもののないシステム を構築し、その振舞いを調べるといった研究も最近は盛んになりつつある。

このような計算科学の多様な発展をもたらしたものは、先にも述べたように第 一義的には計算機の能力の進歩である。

計算機の能力の進歩は、論理素子の進歩がなければ不可能であった。論理素子 の速度は、電気/機械式のリレーの オーダの速度から、現在の CMOS LSI で使われているトランジスタの 程度までほぼ 倍向上し、また回路規模もリレー式計算機では 1000個程度であった ものが、現在の大規模並列計算機では何を数えるかにもよるが 個程度まで増大している。

特に70年代初めの集積回路の発明以降、速度、集積度の進歩はいわゆるムーア の法則に従い、ほぼ3年で集積度が4倍、速度が2倍の向上を達成してきた。こ の傾向はこれからまだ10-20年程度継続しうるものと考えられている。

計算機の歴史は、素子の急速な速度、集積度の進歩を有効に利用する方法の開 発の歴史である。素子の速度の向上はそのまま性能に反映されるが、集積度の 向上はそうではない。特に科学技術計算用の計算機の場合、その構成法は Cray-1 以前と以降で本質的に違っている。 Cray-1 以前(正確にはその前に クレイが設計した CDC-7600以前)は、使える素子数の増加をプロセッサ1台の 性能向上のために利用することができた。CDC-7600以前の計算機では、「フル・ デコード」と呼ばれる、クロックサイクルごとに演算結果を出す乗算器が作れ なかったためである。

乗算が加算よりも大変なのは、人間がやっても計算機がやっても同じである。 2進数の場合、乗算ではビット数だけの数の「部分積」を足し合わせる。この ために、もっとも速い乗算器をつくるためには、ビット数の2乗の数の1ビット加 算器を並べて、一度に答を求めることになる。これをフル・デコードの乗算器 と呼ぶ。それだけの数の加算器を使えなければ何回かに分けて足し算を行なう。

CDC-7600 までは、倍精度(64ビット)演算でフル・デコードの乗算器を実現 するのはコストがかかりすぎた。フル・デコードの乗算器ができるまでは、科 学計算用計算機設計者の仕事はある意味では単純だった。コストが許す限り大 きな乗算器を作り、それに必要な速度でデータを供給できるようなメモリシス テムをつければよかったのである。

ところが、CDC7600以降は複数の演算器が容易に実装できるようになってくる。 つまり、計算機の並列度が1演算以上になった。すると、どのように計算機を 作ればいいかという問題がおきてくる。

この問題は、通常、以下の2つに分けて議論される。一つは、演算器とメ モリの間をどうやってつなぐかということで、もう一つはたくさんの演 算器のそれぞれに何をやらせるかということである。演算器とメモリの つなぎ方は、演算器がそれぞれ自分専用のメモリをもつのが分散メモリ、 そうでなくどの演算器もメモリのすべての場所を読み書きできるのが共 有メモリである。分散メモリの場合、実際に一つの問題を複数の演算器 を使って解こうとするなら他の演算器が持っているメモリを読み書きす る必要がある。この時に、演算器(プロセッサ)同士が通信しあって、 必要なデータをもらってきたり送りつけたりするのがメッセージ・パッ シング、ハードウェア的には直接読み書きできなくても、論理的には他 のプロセッサのメモリも読み書きできるのが最新流行の「分散共有メモ リ」といわれる方式である。

演算器の使い方は、すべての演算器が同時に同じことをするのが SIMD、そう でないのが MIMD ということになる。

80年代末頃までは商用のスーパーコンピュータの演算器の数はそれほど多くは なかった。例えば89年にアナウンスされた日本電気のスーパーコンピュータ SX-3 で乗算器の数は32にすぎない。これは、その間の半導体技術の進歩を考 えると奇妙なことである。 CDC 7600 はまだ集積回路を使っていない。これに 比べると例えば SX-3 ではほぼ 1000 倍の数の回路素子が利用できた。しかし 演算器の数は 32 倍にすぎない。あとの 30 倍はどこに消えたのだろう。

演算器の数の制限は、基本的には共有メモリ型の構成からくる。たくさん演算 器をつけてもメモリとの間のやり取りがそれに応じて速くならないと意味がな い。しかし、共有メモリ型では、すべての演算器がメモリのすべてのところを 読み書きできるようにする必要があり、こういうものでトータルの転送速度を あげるのには限界がある。

共有メモリ型の機械が好まれたのは、プログラム開発の容易さと、前の機種と の互換性維持のためといえる。特に互換性の維持は大きな問題であるとされて いた。

しかし、80年代はじめ頃に、すでに新しい方向が生まれてきていた。分散メモ リ型MIMDマシンである。もっとも早い時期の研究としては、カルテクの Cosmic Cubeと京大(現在筑波大学)の星野らによる PAX プロジェク トがある。これらはどちらも計算機ユーザによって、非常に制限され た問題を解くために構想された。Cosmic Cubeの場合は格子 QCDに使うという ことが第一目的であったし、PAXは原子炉工学の研究者によって、様々な偏微 分方程式系に適用することを目標として開発された。どちらのプロジェクトも、 90年頃に一方は Intel Touchstone Delta、他方は QCDPAX として、同時期の 商用のスーパーコンピュータと同等の性能をはるかに低いコストで実現した。

これらの分散メモリ型マシンは、半導体製造技術における、 LSI の次の大き な革新、すなわちマイクロプロセッサによって可能になった。マイクロプロセッ サは計算機の基本的な要素をすべて1つの LSI に集積したものである。初期の マイクロプロセッサではもちろんまだ利用可能なトランジスタの数が小さく、 フルデコードの乗算器を実現するのは不可能であった。これをはじめて実現し たのは Touchstone Delta に使われた Intel i860 である。 QCDPAX では浮動 小数点演算器だけを集積した LSI とマイクロプロセッサを組み合わせて使っ た。どちらも単一プロセッサでほぼ Cray-1 なみの性能を実現した。これらが 同時期の製品となったスーパーコンピュータと同等の性能を実現したのは偶然 ではない。

90年代のマイクロプロセッサの進歩は、一見するとめざましいもののように見 える。現在製品出荷中のものでは最高速である DEC の 21164は、350 MHz の クロックで動作し 700 Mflops のピーク演算性能を持つ。スーパーコンピュー タの中でもこれより速いクロックで動作するのは日立 S-3800 とクレイ T-90 の2機種だけである。 Cray-1 の流れをくむスーパーコンピュータが時代遅れ なものになったのは疑問の余地がない。 1988 年にクレイが設立したCray Computer 社が、一台の製品も出荷することなく 1995 年に倒産したのは象徴 的であった。

しかし、マイクロプロセッサの速度自体の進歩は、先ほどあげた 10 年 で100倍という数字をかろうじて満たす程度であり、 Intel などのメー カーによる予測では今後の性能向上はスローダウンするとされている。

スローダウンするのは、実はスーパーコンピュータの性能向上がスローダウン したのと同じ原因による。一つのマイクロプロセッサにフル・デコードの乗算 器が入ってしまうと、そこから先の集積度の向上を有効に生かすのは非常に難 しくなる。実際、上にあげた DEC 21164 では乗算器は1つだけであり、 i860 に比べた性能向上はすべてクロック速度の向上からきている。計算上は 20 個 でも 30 個でも演算器が入るのに、そうしないのはいれても有効に使うことが 難しいと考えられているからである。

有効に使えない理由は2つある。一つは既存のプログラムからコンパイラ が並列性を発見するという現在のマイクロプロセッサで広く使われる手 法では、数個以上の演算器を有効に使うのは難しいということ、もう一 つはメモリとの間を十分に速くするのが不可能だということである。

我々が開発してきた GRAPE システムは、この困難を解決する一つの方法 を与えるものになっている。 GRAPE (GRAvity PipE) システムの基 本的なアイディアは、乗算器、加算器を組み合わせて粒子間重力を直接計算 する演算装置をつくってしまうということである。このために、多数の 演算器を集積することには何の困難もない。また、機能を「粒子間重力 の計算」というところまで専用化した結果、演算ユニットを多数並べた 時にどうやって使うかという問題にも非常に簡単な方法で対処できた。 このために、 GRAPE-4 ではわずか の中に約 35,000個の演 算器という、単一の計算機としては世界最大の数を組み込むことができ た。

我々が GRAPE で行ったやり方は、分散メモリ型計算機からさらに 一歩踏み出したものになっている。分散メモリ型計算機では、商品化さ れているマイクロプロセッサをブラックボックスとして使い、その回り の回路を必要に応じて組み上げることで問題向きの計算機を構築した。 GRAPEでは、プロセッサ自体を我々が設計した。

この違いは、上に述べた半導体技術の進歩によって生まれたものである。 10年前には、複数の演算器を単一の LSI に入れるのは不可能であった。 従って、製品化されているマイクロプロセッサは十分効率のよいもので あり、自分で設計したからといってそれより速いものは作れなかった。 製品化されているマイクロプロセッサを多数使って計算機をつくるのは 正解だったといえる。

しかし、現在では、100個以上の演算器が単一の LSI に集積可能であるにもか かわらず、製品化されているマイクロプロセッサでは多くて4個の演算器しか 持たず、しかもプログラムを走らせたときにそれらの演算器はほとんどの時間 遊んでいる。例えば 20%の時間だけ有効に働いているとすれば(これはかな り楽観的な数字である)、現在のマイクロプロセッサは可能な性能の 1/100以下しか出していないことになる。今マイクロプロセッサを使って計算 機を作っても、半導体技術を有効に生かしているとはいい難い。また、多くの 計算機会社がそのようなものを作っているので、自分で作るくらいなら買って くるほうが得である。もちろん、これは、分散メモリ型計算機という、もとも とは計算科学の研究者によって始められたアプローチが商業的に引き合うとこ ろまで普及したということでもある。

航技研の NWT は、分散メモリ型の構成と従来のスーパーコンピュータの 構成を融合した、マイクロプロセッサによる分散メモリ型の計算機の一 つの到達点を示すものと位置づけることができよう。

これに対し専用プロセッサを作るという我々のアプローチは、マイクロプロセッ サ技術が成熟したあとの計算科学の発展の次の可能性を開くものと位置づけら れよう。我々は、現在、次世代機の計画を進めているところである。順調に行 けば、2000年頃に 1 ペタフロップスの性能を持つものが実現できる見込みで あり、これは汎用計算機に比べ少なくとも 10年は早い。

この新しい可能性が、我々の GRAPE システムが対象とする天文の重力多体計 算からさらに他の分野に広がって行くかどうかはこの小文を読んでいる読者の みなさんにかかっている。

GRAPE のようなやりかたの問題点は、もちろん自分で計算機を作らないといけ ないということである。とくに LSI を設計、製作するには大金がかかった。 このコストが専用計算機を作るうえでの主な障害であるといっても過言ではな い。しかし、この状況は近年大きく変化しつつある。

半導体製造技術のめざましい進歩は、半導体設計技術の長足の進歩をもたらし た。 GRAPE-4 では我々は旧式な回路図入力の方法で LSI を設計したが、現在 ではハードウェア記述言語によって、基本的にはプログラムを書くだけで LSI を設計できる。さらに、ハードウェア記述言語やそこから実際に LSI の回路 パターンを生成するソフトウェアは高価な商品ばかりでなくさまざまなフリー ウェアもある。さらには実際に LSI を作るのも、それほど費用のかかること ではない。たとえばアメリカでは 10年以上の歴史がある MOSIS を利 用すればワークステーション1台分程度の費用で最新のテクノロジーを使った LSI が製造できる。MOSIS はごく最近になってアメリカ外の研究機関からも利 用可能になった。また、日本でも MOSIS にあたるような組織がいくつか動き 出すようである。

安価に専用 LSIを作れるだけのインフラストラクチュアはすでに準備されてい る。この機会をうまく利用したものが、計算科学のこれからの10年をリードし ていくことになるだろう。

参考文献

1) 初期の計算機の歴史については星野:誰がどうやってコンピュータを作った のか?、共立出版(1995)が興味深い。

2) Fox,G., Williams, R. D., and Messina, P. C.:Parallel Computing Works!, Morgan Kaufmann, 1994。

3) 星野(編著):PAXコンピュータ、オーム社(1985)。

4) 杉本(編著):専用計算機によるシミュレーション、朝倉書店(1994)。

5) URL:http://www.isi.edu/mosis/





Jun Makino
Thu Jun 4 17:22:07 JST 1998