質問: CPUの種類の一つに「ベクトル型」がありますが、ベクトル型は行列計算に特化したCPUと言ってもいいのでしょうか?それとも行列計算が得意だと言うだけで別の用途にもよく使用されるのでしょうか?流体解析などの複雑な大規模計算をするときによく使われているとは思うのですが。みなさんのご意見をお聞かせください。
回答: > > ベクトル型は行列計算に特化したCPUと言ってもいいのでしょうか? > > > いいえ。 まず、ベクトル型の対義語である「スカラー型」を考えます。 スカラー型とは、1つの数値で示される定数や変数のこと――すなわち、整数、浮動小数、文字列の定数や変数を指します。 これに対してベクトル型は、「1つ」ではなく「複数の」数値で示される定数や変数――つまり「配列」を指します。 配列と行列は同じものでは、と思われるかもしれませんが、少し違います。 たとえば、100個の要素からなる配列 arr に入っている値の各々に 1 を加算するという処理を行う場合、スカラー演算では ``` for (i=0; i<100; i++) { arr(i) = arr(i) + 1; } ``` のように、逐次処理します。 一方、ベクトル演算では、配列をあたかも1つの変数であるかのように扱えるので、次のように一気に加算することができます。 ``` arr(i) = arr(i) + 1; i=0 to i=99 ``` これを実現するために、ベクトル型コンピュータには多数の演算装置が搭載されています。配列のように、複数の値に対して何らかの演算を行わせるのは得意です。 しかし、1つ(または数少ない変数)に対して繰り返し演算を行うような処理では、構造が単純なスカラー型コンピュータの方が早く処理ができます。 > > それとも行列計算が得意だと言うだけで別の用途にもよく使用されるのでしょうか? > > > 配列に対する演算が得意なので、その延長線上にある行列演算は得意なものの1つということです。 地球シミュレータのように、地球上を数百万カ所のエリア(メッシュ)に分け、これを配列のようにして演算するのに向いています。 また、3DCGのように、無数のポリゴンの計算を行うのも得意です。この意味で最近のGPUは明らかにベクトル型コンピュータであり、東工大ではGPUを並列させたスパコンTSUBAMEを完成させました。