11. マルチスレッド・プロセッサ

32
Advanced Computer Architecture 11. マママママママ マママママ 五五 五五

Upload: beth

Post on 05-Jan-2016

67 views

Category:

Documents


2 download

DESCRIPTION

11. マルチスレッド・プロセッサ. 五島 正裕. 内容. スレッド と マルチスレッド・プロセッサ スループット指向 MTP TLP 指向 MTP. スレッド と マルチスレッド・プロセッサ. スレッドとは. スレッド (thread) : 「プロセッサの実行状態」 「 1 つの PC で指定される命令流」 いろいろなスレッド: OS のスレッド/スレッド・ライブラリ pthread , Solaris thread , NT thread 言語のスレッド Java thread. スレッドの実体. OS のタスク ― スレッド・モデル - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 11.  マルチスレッド・プロセッサ

AdvancedComputer

Architecture

11. マルチスレッド・プロセッサ

五島 正裕

Page 2: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

内容

1. スレッド と マルチスレッド・プロセッサ2. スループット指向 MTP

3. TLP 指向 MTP

Page 3: 11.  マルチスレッド・プロセッサ

AdvancedComputer

Architecture

スレッド と マルチスレッド・プロセッサ

Page 4: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

スレッドとは

スレッド (thread) : 「プロセッサの実行状態」 「 1 つの PC で指定される命令流」

いろいろなスレッド: OS のスレッド/スレッド・ライブラリ

pthread , Solaris thread , NT thread

言語のスレッド Java thread

Page 5: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

スレッドの実体

OS のタスク―スレッド・モデル 1 つのプロセス = 1 つのタスク + 1 つ,または,複数のスレッド

タスクの実体: メモリ・イメージ,ページの集合 スレッドの実体: プロセッサ・コンテクスト

タスク タスク

シングル・スレッド・プロセス マルチスレッド・プロセス

スレッド

Page 6: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

マルチスレッド・プロセッサ (MTP)

プロセッサ・コンテクスト (processor context)

「プロセッサの動作状態を一意に定義するデータの集合」 コンテクスト・スイッチのとき,退避 / 復帰されるもの PC ,レジスタ, etc .

マルチスレッド・プロセッサ (MTP) : 複数のプロセッサ・コンテクストを保持する それらのスイッチを HW が行う

Page 7: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

複数のスレッドの元

複数のスレッドの元 (source) : 複数のプログラムから 1 本ずつ 1 本のプログラムから複数のスレッド それらの組み合わせ

抽出の方法: スレッド・ライブラリや言語機能を用いてプログラマが 自動マルチスレッド化コンパイラが HW が

Page 8: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

マルチスレッド・プロセッサ

マルチスレッド・プロセッサ 複数スレッドを「同時に」実行できる 1 つのプロセッサ

マルチ・コア (multi-core)

複数のプロセッサ(コア)が 1 つに集積されているもの マルチスレッドのマルチ・コアもあり

マルチプロセッサ (multiprocessor)

複数のプロセッサを持つ 1 つのシステム マルチスレッドのマルチプロセッサもあり

Page 9: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

マルチスレッド・プロセッサの英訳?

Google

“Multithreaded Processor” (10,200 件 )

“Multi-threaded Processor” ( 698 件 )

“Multithreading Processor” ( 5,120 件 )

“Multi-Threading Processor” ( 157 件 )

“Multithread Processor” ( 195 件 )

“Multi-Thread Processor” ( 203 件 )

Page 10: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

マルチスレッド・プロセッサ (和訳)

Google

“ マルチ スレッド プロセッサ” (226 件 )

“ マルチ スレッディング プロセッサ” (18 件 )

“ スレディッド”,“スレディド”,“スレッディッド”… ( 数件 )

Page 11: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

MTP の分類

TLP (Thread-Level Parallelism) 指向 粗粒度の並列性がない単一のプログラム ⇒ TLP の抽出

スループット指向 粗粒度の並列性がある単一のプログラム(⇒ 複数のプログラム)

データ並列性 「粗粒度のスレッド」

– スレッド・ライブラリ– 言語のスレッド機能

複数のプログラム 「単一のプログラムは速くならないが,

 複数のプログラムを実行しても遅くならない」

Page 12: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

MTP の分類

プログラム 粗粒度の並列性 指向

単一

なしTLP 指向

(Thread-Level Parallelism)

データ並列性粗粒度のスレッド

スループット指向

複数 ―

Page 13: 11.  マルチスレッド・プロセッサ

AdvancedComputer

Architecture

スループット指向 MTP

Page 14: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

スループット指向 MTP の対象

スループット指向 MTP の対象: 粗粒度の並列性がある単一のプログラム

データ並列性 「粗粒度のスレッド」

– スレッド・ライブラリ– 言語のスレッド機能

複数のプログラム: 「単一のプログラムは速くならないが,

 複数のプログラムを実行しても遅くならない」

Page 15: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

スループット指向 MTP の戦略

スループット指向 MTP の戦略: 計算資源の利用効率の向上 シングル・スレッドでは使いきれない計算資源の活用

使い切れない原因:レイテンシ 依存関係:レイテンシ分の空きスロット,バブル 予測ミス:ペナルティ分の空きスロット,バブル

実際的な主要因: データ依存 分岐予測ミス キャッシュ・ミス

Page 16: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

スループット指向 MTP の分類

古典的( 90's ~): 細粒度 (fine-grain) MTP

クロック単位で切り替え 粗粒度 (coarse-grain) MTP

長レイテンシ(キャッシュ・ミス)発生時に切り替え 最近

SMT (Simultaneous Multi-Threading) プロセッサ 命令単位で切り替え

– Intel Hyper-Threading (HT) Technology (2threads)

– Sun Niagara (4threads)

– SONY Cell PPE (2threads)

Page 17: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

細粒度 MTP の効果

cyclecycle

Page 18: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

粗粒度 MTP の効果

キャッシュミス

キャッシュミス

cycle

Page 19: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

SMT の効果

演算器 演算器 演算器

cycle cycle

Page 20: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

SMT

Page 21: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 22: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 23: 11.  マルチスレッド・プロセッサ

AdvancedComputer

Architecture

Page 24: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 25: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 26: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 27: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 28: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 29: 11.  マルチスレッド・プロセッサ

AdvancedComputer

Architecture

Page 30: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 31: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture

Page 32: 11.  マルチスレッド・プロセッサ

Advanced Computer Architecture