フリンの分類

出典: フリー百科事典『ウィキペディア(Wikipedia)』

フリンの分類(フリンのぶんるい、: Flynn's taxonomy)は、計算機科学の分野で並列処理に関するコンピュータ・アーキテクチャの分類である。マイケル・J・フリン(Michael J. Flynn)が1966年に提案した。[1][2]

分類[編集]

フリンが提唱した分類は、アーキテクチャ上の命令(または制御)の並行度とデータストリームの並行度に基づく4種類である。

分類 概要
Single Instruction, Single Data stream (SISD) 命令にもデータにも並列性のない逐次的なコンピュータ。SISDアーキテクチャの例としては、いわゆるシングルプロセッサのマシンが挙げられ、旧式のパーソナルコンピュータや古いメインフレームがある。
Single Instruction, Multiple Data streams (SIMD) 命令列は1つだが、それを複数のデータストリームに適用する形態のコンピュータ。画像、音声、動画などを扱うマルチメディア処理で多用されている。例えば、ベクトル計算機GPUMMXSSE3DNow!SPEがある。
Multiple Instruction, Single Data stream (MISD) 命令列が複数あり、それを1つのデータストリームに適用する形態のコンピュータ。あまり一般的ではないが、フォールトトレラント設計のシステムで冗長性を確保するために使われる。理論的にMISD型で提案されたコンピュータもいくつかあったが、高価である割に性能はあまり高くなく、大量生産されるには至っていない。
Multiple Instruction, Multiple Data streams (MIMD) 複数のプロセッサが同時並行的にそれぞれ異なるデータを異なる命令で処理するコンピュータ。一般に分散システムはMIMD型であると言われ、単一の共有メモリを使う場合と、分散メモリを使う場合がある。近年のパーソナルコンピュータではプロセッサが複数のコアを搭載し(マルチプロセッサマルチコア)、マルチタスクをアプリケーション単位で分散している。

図解[編集]

4つのアーキテクチャを図解したものを以下に示す。"PU" はプロセッシングユニット(処理単位)、"Instruction Pool" は命令プール、"Data Pool" はデータプールである。

SI– MI–
–SD
–MD

さらなる分類[編集]

2006年現在、スーパーコンピュータの性能比較(TOP500)で上位に並ぶマシンは、ほとんどがMIMD/SIMDヘテロジニアスアーキテクチャである。MIMDをさらに以下のように分類することもある。[3][4][5][6]

Single Program, Multiple Data streams (SPMD)
複数のプロセッサが同時並行的に同じプログラムを実行する。ただし、SIMDやMISD(ロックステップ実行)のように同じ箇所ではなく、それぞれ別の箇所を実行し、別々のデータを使用する。'Single Process, multiple data' とも呼ばれ、並列プログラミングでは最も一般的とされる[7]
Multiple Program Multiple Data (MPMD)
複数のプロセッサが同時並行的に少なくとも2つ以上の独立したプログラム群を実行する。これは例えばマルチプロセッサで複数のプロセスを同時に実行するという意味ではない。その場合は単にハードウェアがマルチプロセッサになっているだけで、それをオペレーティングシステムが複数のコンピュータであるかのように見せているだけである。ここでいうのは、1つのノードを「ホスト」または「マネージャ」とし、そこで第一のプログラムを実行して、そのプログラムが他のノード群に第二のプログラムとデータを分配して実行されるような形態である。そのようにして各ノードが実行した結果をマネージャノードに返す。

これ以外の分類法も提案されている[8]

脚注[編集]

外部リンク[編集]

この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。