フリンの分類
出典: フリー百科事典『ウィキペディア(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つだが、それを複数のデータストリームに適用する形態のコンピュータ。例えば、ベクトル計算機やGPUがある。
- Multiple Instruction, Single Data stream (MISD)
- 命令列が複数あり、それを1つのデータストリームに適用する形態のコンピュータ。あまり一般的ではないが、フォールトトレラント設計のシステムで冗長性を確保するために使われる。理論的にMISD型で提案されたコンピュータもいくつかあったが、大量生産されるには至っていない。
- Multiple Instruction, Multiple Data streams (MIMD)
- 複数のプロセッサが同時並行的にそれぞれ異なるデータを異なる命令で処理するコンピュータ。一般に分散システムはMIMD型であると言われ、単一の共有メモリを使う場合と、分散メモリを使う場合がある。
[編集] 図解
4つのアーキテクチャを図解したものを以下に示す。"PU" はプロセッシングユニット(処理単位)、"Instruction Pool" は命令プール、"Data Pool" はデータプールである。
[編集] さらなる分類
2006年現在、スーパーコンピュータの性能比較(TOP500)で上位に並ぶマシンは、ほとんどがMIMDアーキテクチャである。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]
[編集] 脚注
- ^ Flynn, M., Some Computer Organizations and Their Effectiveness, IEEE Trans. Comput., Vol. C-21, pp. 948, 1972.
- ^ Duncan, Ralph, "A Survey of Parallel Computer Architectures", IEEE Computer. February 1990, pp. 5-16.
- ^ SPMD ローレンス・リバモア国立研究所
- ^ Programming requirements for compiling, building, and running jobs アメリカ大気研究センター
- ^ SPMD or Manager/Worker コーネル大学
- ^ Distributed-memory programming アメリカ国立標準技術研究所
- ^ single program multiple data アメリカ国立標準技術研究所
- ^ Distributed Memory Programming コーネル大学
[編集] 外部リンク
この記述は GNU Free Documentation License のもとに公開されているコンピュータ用語辞典『 Free On-line Dictionary of Computing (FOLDOC) 』に基づいています。