トップQs
タイムライン
チャット
視点
フリンの分類
ウィキペディアから
Remove ads
フリンの分類(フリンのぶんるい、英: Flynn's taxonomy)は、計算機科学の分野で並列処理に関するコンピュータ・アーキテクチャの分類である。マイケル・J・フリン(Michael J. Flynn)が1966年に提案した。[1][2]。
分類
要約
視点
フリンが提唱した分類は、アーキテクチャ上の命令列(または制御列)の並列性とデータ列の並列性に基づく4種類である。
現代のコンピュータは、ほとんどが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つのノードを「ホスト」または「マネージャ」とし、そこで第一のプログラムを実行して、そのプログラムが他のノード群に第二のプログラムとデータを分配して実行されるような形態である。そのようにして各ノードが実行した結果をマネージャノードに返す。
Remove ads
図解
4つのアーキテクチャを図解したものを以下に示す。"PU" はプロセッシングユニット(処理単位)、"Instruction Pool" は命令プール、"Data Pool" はデータプールである。
出典・脚注
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads