Posts for the month of October 2009

『スーパーコンピュータ』

『スーパーコンピュータ』シドニー・ファーンバック(長島重男訳)を某新刊書店で発見したので捕獲する。消費税が3%時代の値札修正シールがついた1988年4月1日初版本である。なぜこんな古い本が未だに陳列されているのかよくわからないが、内容は80年代前半のスーパーコンピュータのアーキテクチャについて。一番ページが費やされているのは、各社のベクトル計算機についてである。登場順に並べる。

社名 機種 コメント
Cray Research CRAY-1, CRAY X-MP, CRAY-2 X-MPと2はベクトル並列
Control Data CYBER205
日立 S-810アレイプロセッサシステム
富士通 FACOM VPシステム
NEC SXシステム
Control Data CYBERPLUS 分散並列
Goodyear Aerospace Massively Parallel Processor タイル並列

最後の二つ以外はすべてベクトル計算機である。

各社の計算機紹介についての章の前に、ベクトル処理に関する章があり、それを読むことで誤解が解けた。それは、ベクトル処理を実現するための手段として、アレイ計算機とパイプラインベクトル計算機の二つの手段があり、通常のベクトル計算機(上記システム全て)はパイプラインベクトル計算機である。実際には、上記のシステムの中にはパイプラインを複数持つものもあるが、たかだか4本程度である。実際、SX-2は4本のパイプラインがベクトルを4入力ごとに処理する機構を持つ。アレイ計算機とは、概念図を見ると現代のGPUと似た構成で、相互結合ネットワークを介して主記憶と演算器が接続されていて、複数の演算器でベクトルデータを並列に処理する計算機である。例として挙げられている計算機はILLIAC IV, ICL DAP, Burroughs BSP, Goodyear MPPである。MPP以外にはこの本での紹介はない。80年代前半の時点で、普通のベクトル計算機のほうが有利(作りやすい?)であることは明らかだったようだ。

「GPUはベクトル計算機」と言った時に、個人的に利用したことのあるベクトル計算機であるVPPシリーズやSXシリーズを思い浮かべると、どうにも整合性がとれない。この本で他のベクトル計算機も含めて比べてみると、GPUと構造上で似ている点は全くないと結論してよいことがわかった。ちなみに、Cray, CDC, 日立, 富士通, NECの各システムを比較すると、どれも似たような技術を使った似たような構造の計算機であり、各システムに明確な差はないようであった。論理は100 - 1000ゲートの素子を組み合わせて動作速度は10nsくらい、主記憶はアクセス時間は10 - 60 nsのSRAMで大きさは100MBクラス、外部記憶にはDRAMが利用されていて大きさは1000MBクラスである。

GPUがベクトル処理を実現する手段としてのアレイ計算機であると考えれば、「GPUはベクトル計算機」という言い方でもしっくりくる。とはいえ、アレイ計算機として唯一紹介されているMPPの章を読むと、これは1 bitプロセッサを格子状に接続した計算機でほとんどFPGAのようなものであり、動作がアレイ計算機的になるのは理解できるとしても、その構造を考えるとあまりしっくりこない。ついでながら、日立のS-810は名前に反して他のベクトル計算機と同様の構成であった。そういう意味で、GPU的なベクトル処理機構というのは、80年代の前半の時点で既に死に絶えていたと言えるのかもしれない。

上記の中ではCYBERPLUSだけが他と比べると少し異質で、これは現代の分散並列計算機に近い。演算プロセッサはリングネットワークで接続されていて、データ転送とプロセッサでの演算は独立に動作するようだ。ただしそのプロセッサは、15個の演算ユニット(整数加算、整数乗算、シフト論理演算、メモリ、レジスタ、制御等等)をクロスバで接続したものであり、その構造はかなり奇異に感じる。その制御のための命令は合計で200 bit幅にもなるとのこと。さらに浮動小数点拡張をいれると240 bitとなるらしい。とはいえ、単に普通はユーザーからは隠されているマイクロコードが露出しているだけで、現代のプロセッサでも、水平なマイクロコードで制御するとこの位の情報量になるのかもしれないが。