フリンの分類とは? わかりやすく解説

フリンの分類

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/27 08:50 UTC 版)

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

分類

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

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

現代のコンピュータは、ほとんどがMIMD/SIMDヘテロジニアスアーキテクチャである。

これ以外の分類法も提案されている[3]。また批判として、フリンの分類は「機械的に過ぎ」、現在[4]までに提案された並列計算機を特徴に応じてうまく分類できないとして、新しい分類を試みた書籍もある[5]

MIMDの分類

MIMDをさらに以下のように分類することもある。[6][7][8][9]

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

図解

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

SI– MI–
–SD
–MD

出典・脚注

  1. ^ Flynn, M., Some Computer Organizations and Their Effectiveness, IEEE Trans. Comput., Vol. C-21, pp. 948, 1972.
  2. ^ Duncan, Ralph, "A Survey of Parallel Computer Architectures", IEEE Computer. February 1990, pp. 5-16.
  3. ^ Distributed Memory Programming コーネル大学
  4. ^ 1988年の書籍
  5. ^ 雨宮真人・田中譲『コンピュータアーキテクチャ』ISBN 4-274-07426-9 pp. 26-
  6. ^ SPMD ローレンス・リバモア国立研究所
  7. ^ Programming requirements for compiling, building, and running jobs アメリカ大気研究センター
  8. ^ SPMD or Manager/Worker コーネル大学
  9. ^ Distributed-memory programming アメリカ国立標準技術研究所
  10. ^ single program multiple data アメリカ国立標準技術研究所

この記事は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複数命令複数データ)は、ほとんどの並列プログラム対応するデイビッド・パターソンジョン・ヘネシー著書には「もちろん一部マシンはこれらの混成であるが、単純で分かりやすくとりあえずの近似としては最適であるが故にこの分類が今も使われている」とある。

※この「フリンの分類」の解説は、「並列計算」の解説の一部です。
「フリンの分類」を含む「並列計算」の記事については、「並列計算」の概要を参照ください。

ウィキペディア小見出し辞書の「フリンの分類」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「フリンの分類」の関連用語

フリンの分類のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



フリンの分類のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのフリンの分類 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの並列計算 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS