ベクトルコンピュータ 【ベクトルプロセッサ】 vector processor / アレイプロセッサ / array processor / ベクトル型スーパーコンピュータ
概要
ベクトルコンピュータ(ベクトルプロセッサ)とは、多数のデータに同時に同じ演算を行うベクトル処理に適した設計のマイクロプロセッサおよびコンピュータ。1990年代までのスーパーコンピュータに多く見られた設計様式である。一つの演算命令の対象としてメインメモリの範囲を指定することができ、プロセッサ内部に大量に組み込まれたレジスタ(一時データ保存回路)および演算器によって複数の値に対して一気に演算を実行することができる。
この演算の最中は分岐処理が行われることはないため、演算命令に対して深いパイプラインを構成することができ、前の処理の計算中に次の処理に必要なデータをメモリから読み込むといった効率的な回路の利用を行うことができる。
ベクトル型が発明されて以降、従来のように一つの命令がせいぜい数個までのデータを処理対象とするプロセッサを区別して呼ぶための用語(レトロニム)として「スカラ型プロセッサ」という呼称が用いられることがある。
ベクトル演算を利用するには、同じ演算を多数の対象に行う用途、そのために特別に制作されたソフトウェアが必要で、通常のプログラムをベクトルコンピュータで実行すれば速くなるというものではない。気象予測や流体計算などの科学技術計算、数値シミュレーションに適しており、主にスーパーコンピュータの実装方式として発展した。
1980年代から90年代にかけて、米クレイ・リサーチ(Cray Research)社(当時)のCrayシリーズやNECのSXシリーズなどのベクトル型スーパーコンピュータが注目され、2003年にはNEC製の「地球シミュレータ」が「TOP500」ランキングの1位となったこともあった。2000年代以降はスカラ型のプロセッサや計算ノードを多数連結したクラスタ型が主流となり、ベクトル型は下火となっている。
一方、スカラ型として設計されたプロセッサの中にも、特定の演算について一度の実行で多数のデータを処理できる「SIMD拡張命令」を搭載した製品や、グラフィックス処理に特化したGPU(Graphics Processing Unit)などの製品もある。これらは用途の限定されたベクトルプロセッサの一種とみなされることがあり、画像処理や暗号化、機械学習などで活躍している。