フリンの分類(フリンのぶんるい、: 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」(再ライセンス) 条件に基づいて組み込まれている。

📚 Artikel Terkait di Wikipedia

コンピュータ略語一覧

SIGINT SIGnal INTerruput → シグナル (Unix)#個々のシグナル SIMD (Single Instruction Multiple Data) SIMM メモリ (Single Inline Memory Module) SIP Session Initiation Protocol

オペレーティングシステムの一覧

System/Virtual Storage 2、OS/MVTの仮想記憶版) OS/VS2 R1(別名Single Virtual Storage、SVS) OS/VS2 R2(別名Multiple Virtual Storage、MVS) MVS/SE MVS/SP (MVS/System Package)

国際コミュニケーション英語能力テスト

広告、手紙、新聞記事などの英文を読み、それについての質問に答える。読解すべき文書が一つのもの (Single passage) が29問。「手紙+タイムテーブル」など読解すべき文書が2つもしくは3つのもの (Multiple passage) が25問。それぞれ4択式。合計54問。 スコアに応じて、コミュニケーション能力のレベル

TDRS

Sバンドマルチプルアクセス(S-band Multiple Access) 機体側面に搭載されたフェーズドアレイアンテナにより、一度に5つの衛星からのデータ受信と1つの衛星への送信を行う。第2世代までの衛星よりも通信速度は上昇している。 Sバンドシングルアクセス(S-band Single Access)

Transmission Control Protocol

Transmission Control Program で、ホスト間のコネクション指向のリンクとデータグラムサービスの両方を含んでいた。当初一体だった Transmission Control Program は後にモジュール化されたアーキテクチャに分割され、コネクション指向部分の

連邦エンタープライズアーキテクチャ

technologies into lower-level functional areas. Each Service Area consists of multiple Service Categories and Service Standards. This hierarchy provides the framework

Docker

exposes the same API as a single Docker host, which means you can use Compose against a Swarm instance and run your apps across multiple hosts. [14] ^ By default

トップレベルドメイン一覧

gTLD Program : InitialEvaluation Report : Report Date: 10 May 2013” (PDF). Newgtlds.icann.org. 2014年10月21日閲覧。 ^ IANA — .mormon Domain Delegation Data. Accessed