前節では、 GRAPE アーキテクチャの基本的な原理と、それが最新の GRAPE-6 ではどのように実現されているかを簡単にみた。汎用計算機と比べた時の本質 的な利点は、専用化してやることを固定しているために、チップ上 のトランジスタのほとんど全てを演算器に使い、それらを全て並列に動作させ ることが可能であるということである。
これは、言い換えると現在の汎用計算機のアーキテクチャには、多数の演算器 を1チップに集積することも、それらをを並列に使うことも難しい、あるいは 少なくともそういうことになっているということである。実際、既に述べたよ うにインテルや AMD の最新のプロセッサで演算器の数は1-2個であり、マイク ロプロセッサを設計・製造する側は多数の演算器をいれても商品価値にはさし てつながらないと考えていることは間違いない。
この判断は、商品として大量にマイクロプロセッサを売るという観点からは正 しいものであろう。絶対性能が重要でないというわけではないが、過去のソフ トウェア資産が使えることなどの要求を無視できないからである。
しかし、それと同時に、仮に「商品として大量に売る」という観点を無視した ところで、インテル等のマイクロプロセッサよりも高い性能が得られるかとい えば、理論的にはともかく現実的には現在そういうものが存在しているとはい いがたい。既にみたように、汎用とはいえ科学技術計算に特化しているはずの 地球シミュレータでも、そのへんのマイクロプロセッサにくらべて 価格性能比ではむしろ悪いからである。
もちろん、地球シミュレータ、あるいはそれに代表される(といっても他には ほとんど存在しなくなったが)ベクトルプロセッサについては、その演算能力 当りのコストがマイクロプロセッサに比べて高いことには明確な理由がある。 端的には、 これはメインメモリのバンド幅が高いことによっている。例えば 2GHz の P4 の場合、主記憶はのバンド幅は高価と言われる DRDRAM を使った 場合で 3.2GB/s であり、もちろん連続アドレスのアクセスの場合にしか(まあ、 少なくともキャッシュラインサイズ単位以上ないと)これに近い数字も実現さ れない。 これに対し伝統的なベクトルプロセッサのデザインでは、演算器一 つ当り最低 1 クロック 1 語、可能であれば 2 語の転送を、連続アドレスだ けでなく一定ストライドアクセス(多次元配列の外側の添字を回すような場合) にも可能にしている。このため、バンド幅だけでなくメモリアクセスレイテン シをほぼ隠蔽できるだけの数のメモリバンクが必要になり、これがコストを引 き上げている。単に必要なバンド幅を供給するだけでも容易なことではない。 2GHz のプロセッサでは 1 演算としても 16GB/s と現在の 5 倍であり、 800 Mb/s の信号線が 160 本必要になる。
ベクトルプロセッサではこの大きなメモリバンド幅と単純なメモリ階層が、実 用プログラムで高い実効性能を実現することを容易にしていることはいまさら 詳しく議論するまでもないと思う。
しかし、他方では、その高いコストに見合っただけの実効性能が得られている かというと、必ずしもそうは考えてないユーザーの割合が増えてきていること は確かであり、そのために大規模な計算機はほとんど PC クラスタや 4-8 CPU 程度の SMP マシンのクラスタに置き換わってきている。
この辺りの、科学技術計算に使われる計算機はどんなものか、あるいはどんな ものであるべきかという話はなかなか難しい。難しい理由の大きなものは、現 在の解が歴史的なものであることであろう。「なぜ現在使っているものがこう いうものであるか」、「なぜもっとましなものがないか」を理解することはで きなくはないが、、、というような抽象論をしてもしょうがない。以下、もう 少し具体的に考えてみよう。