並列計算
並列コンピュータは、ハードウェアのどのレベルで並列性をサポートするかによって大まかに分類できる。これは、基本計算ノード間の距離とも大まかに対応している。
なお、以下の分類は相互排他的ではない。例えば、対称型マルチプロセッサを複数束ねたクラスターというのもよくある構成である。
マイケル・J・フリンは、並列(および逐次)コンピュータ/プログラムの分類であるフリンの分類を提案した。フリンは命令列が単一か複数かという点と、その命令列(群)が扱うデータが単一か複数かによって4種類に分類した。
SISD(単一命令、単一データ)は、完全に逐次的なプログラムと等価である。SIMD(単一命令、複数データ)は同じ操作を多数のデータに対して行う場合を意味する。これは信号処理などで一般的である。MISD(複数命令、単一データ)はあまり使われない分類だが、フォールトトレラントシステムの冗長構成を指すことがある。シストリックアレイのようなアーキテクチャがこれに相当するが、実際の応用例は少ない。MIMD(複数命令、複数データ)は、ほとんどの並列プログラムに対応する。
デイビッド・パターソンとジョン・ヘネシーの著書には「もちろん一部のマシンはこれらの混成であるが、単純で分かりやすく、とりあえずの近似としては最適であるが故にこの分類が今も使われている」とある。