ちょいと嘘がありますけどね

1989年というと、私が就職して2年目。残業残業休日出勤でへとへとになるまで働いていたころです。最強のPC用プロセッサは80386かMC68030。どちらも浮動小数点演算機能を備えておらず、命令実行には数サイクルを要していました。特に乗算には大きなサイクル数がかかっていた時代です。最大実行周波数は20MHzに届いていたでしょうか。ですから、PCというのはその時代研究用の計算機としてはとても非力でした。そういう時代に、大規模計算を行うハードウェア GRAPE 1を造った人々の話。

スーパーコンピューターを20万円で創る (集英社新書)

スーパーコンピューターを20万円で創る (集英社新書)

書いたのは GRAPE1 の開発者自身です。起案した教授も開発者自身もコンピュータ設計としてはまったく素人ながら、先端に立てるというビジョンに押されるように専用コンピュータ開発に突き進みます。コンピュータ、といってもGRAPE 1はプログラマブルな計算機ではありません。ひたすら多体重力シミュレーションを行うだけのハードウェアです。クロック周波数は数MHzに抑えながらも演算をパイプライン化することで、1クロックで複数の演算を行うことができます。
GRAPE1を使うことで著者らのチームは球状星団の挙動に関する研究で世界のトップに立つことができました。
仮説をシミュレートする場合、一回のシミュレーションが短ければその分多くの仮説を試すことができます。ライバルより多くの事例を検討し、ライバルより早く仮説を練り上げることができるのです。GRAPE1は研究目的に特化したアーキテクチャを持つことで、フォン・ノイマンボトルネックを避けつつ安価で高速な計算ができることを内外に示しました。そのようなマシンはこれが初めてではありませんでしたが、GRAPE1は大成功し、その後シリーズ化されたことで当時何度もスーパーコンピュータに関する解説で取り上げられ、脚光を浴びました。現在、信号処理やアルゴリズムに関する研究のかなりの割合が汎用プロセッサではなくFPGAによる専用回路で行われています。GRAPEシリーズの成功はそのような潮流を予言していたともいえます。
さて、この本、うそがあります。GRAPE1の演算性能が240MFLOPSであり、それは堂々たるスーパーコンピュータだ、というのがこの本の出だしのうたい文句です。が、"FLOPS"は、FLoating point Operation Per Second、つまり1秒あたりの浮動小数点演算の単位です。一方、GRAPE1は整数*1マシンでした。しかも汎用プロセッサと違い、浮動小数点演算をソフトウェアでエミュレートすることはできません。GRAPE1の性能はFLOPSで図るとすれば、0FLOPSになってしまいます。スーパーコンピュータは浮動小数点演算能力が高いからこそスーパーなのです。シリーズ化によって演算性能を上げて成功していった筆者らがそれを知らないわけはありません。ずるいなー、と思いながらページをめくりました*2
無論、それでGRAPEの価値が落ちるわけでありませんが。

*1:おそらくは固定小数

*2:パイプライン内部の演算をカウントしても120MOPSくらいにしかならないのも不思議な点