フリンの分類
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/07 09:30 UTC 版)
フリンの分類(フリンのぶんるい、英: 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、MMX、SSE、3DNow!、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]。
また批判として、フリンの分類は「機械的に過ぎ」、現在[9]までに提案された並列計算機を特徴に応じてうまく分類できないとして、新しい分類を試みた書籍もある。[10]
出典・脚注
- ^ 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 コーネル大学
- ^ 1988年の書籍
- ^ 雨宮真人・田中譲『コンピュータアーキテクチャ』ISBN 4-274-07426-9 pp. 26-
外部リンク
この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。
フリンの分類
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/25 13:20 UTC 版)
マイケル・J・フリンは、並列(および逐次)コンピュータ/プログラムの分類であるフリンの分類を提案した。フリンは命令列が単一か複数かという点と、その命令列(群)が扱うデータが単一か複数かによって4種類に分類した。 SISD(単一命令、単一データ)は、完全に逐次的なプログラムと等価である。SIMD(単一命令、複数データ)は同じ操作を多数のデータに対して行う場合を意味する。これは信号処理などで一般的である。MISD(複数命令、単一データ)はあまり使われない分類だが、フォールトトレラントシステムの冗長構成を指すことがある。シストリックアレイのようなアーキテクチャがこれに相当するが、実際の応用例は少ない。MIMD(複数命令、複数データ)は、ほとんどの並列プログラムに対応する。 デイビッド・パターソンとジョン・ヘネシーの著書には「もちろん一部のマシンはこれらの混成であるが、単純で分かりやすく、とりあえずの近似としては最適であるが故にこの分類が今も使われている」とある。
※この「フリンの分類」の解説は、「並列計算」の解説の一部です。
「フリンの分類」を含む「並列計算」の記事については、「並列計算」の概要を参照ください。
固有名詞の分類
- フリンの分類のページへのリンク