11. マルチスレッド・プロセッサ
DESCRIPTION
11. マルチスレッド・プロセッサ. 五島 正裕. 内容. スレッド と マルチスレッド・プロセッサ スループット指向 MTP TLP 指向 MTP. スレッド と マルチスレッド・プロセッサ. スレッドとは. スレッド (thread) : 「プロセッサの実行状態」 「 1 つの PC で指定される命令流」 いろいろなスレッド: OS のスレッド/スレッド・ライブラリ pthread , Solaris thread , NT thread 言語のスレッド Java thread. スレッドの実体. OS のタスク ― スレッド・モデル - PowerPoint PPT PresentationTRANSCRIPT
AdvancedComputer
Architecture
11. マルチスレッド・プロセッサ
五島 正裕
Advanced Computer Architecture
内容
1. スレッド と マルチスレッド・プロセッサ2. スループット指向 MTP
3. TLP 指向 MTP
AdvancedComputer
Architecture
スレッド と マルチスレッド・プロセッサ
Advanced Computer Architecture
スレッドとは
スレッド (thread) : 「プロセッサの実行状態」 「 1 つの PC で指定される命令流」
いろいろなスレッド: OS のスレッド/スレッド・ライブラリ
pthread , Solaris thread , NT thread
言語のスレッド Java thread
Advanced Computer Architecture
スレッドの実体
OS のタスク―スレッド・モデル 1 つのプロセス = 1 つのタスク + 1 つ,または,複数のスレッド
タスクの実体: メモリ・イメージ,ページの集合 スレッドの実体: プロセッサ・コンテクスト
タスク タスク
シングル・スレッド・プロセス マルチスレッド・プロセス
スレッド
Advanced Computer Architecture
マルチスレッド・プロセッサ (MTP)
プロセッサ・コンテクスト (processor context)
「プロセッサの動作状態を一意に定義するデータの集合」 コンテクスト・スイッチのとき,退避 / 復帰されるもの PC ,レジスタ, etc .
マルチスレッド・プロセッサ (MTP) : 複数のプロセッサ・コンテクストを保持する それらのスイッチを HW が行う
Advanced Computer Architecture
複数のスレッドの元
複数のスレッドの元 (source) : 複数のプログラムから 1 本ずつ 1 本のプログラムから複数のスレッド それらの組み合わせ
抽出の方法: スレッド・ライブラリや言語機能を用いてプログラマが 自動マルチスレッド化コンパイラが HW が
Advanced Computer Architecture
マルチスレッド・プロセッサ
マルチスレッド・プロセッサ 複数スレッドを「同時に」実行できる 1 つのプロセッサ
マルチ・コア (multi-core)
複数のプロセッサ(コア)が 1 つに集積されているもの マルチスレッドのマルチ・コアもあり
マルチプロセッサ (multiprocessor)
複数のプロセッサを持つ 1 つのシステム マルチスレッドのマルチプロセッサもあり
Advanced Computer Architecture
マルチスレッド・プロセッサの英訳?
“Multithreaded Processor” (10,200 件 )
“Multi-threaded Processor” ( 698 件 )
“Multithreading Processor” ( 5,120 件 )
“Multi-Threading Processor” ( 157 件 )
“Multithread Processor” ( 195 件 )
“Multi-Thread Processor” ( 203 件 )
Advanced Computer Architecture
マルチスレッド・プロセッサ (和訳)
“ マルチ スレッド プロセッサ” (226 件 )
“ マルチ スレッディング プロセッサ” (18 件 )
“ スレディッド”,“スレディド”,“スレッディッド”… ( 数件 )
Advanced Computer Architecture
MTP の分類
TLP (Thread-Level Parallelism) 指向 粗粒度の並列性がない単一のプログラム ⇒ TLP の抽出
スループット指向 粗粒度の並列性がある単一のプログラム(⇒ 複数のプログラム)
データ並列性 「粗粒度のスレッド」
– スレッド・ライブラリ– 言語のスレッド機能
複数のプログラム 「単一のプログラムは速くならないが,
複数のプログラムを実行しても遅くならない」
Advanced Computer Architecture
MTP の分類
プログラム 粗粒度の並列性 指向
単一
なしTLP 指向
(Thread-Level Parallelism)
データ並列性粗粒度のスレッド
スループット指向
複数 ―
AdvancedComputer
Architecture
スループット指向 MTP
Advanced Computer Architecture
スループット指向 MTP の対象
スループット指向 MTP の対象: 粗粒度の並列性がある単一のプログラム
データ並列性 「粗粒度のスレッド」
– スレッド・ライブラリ– 言語のスレッド機能
複数のプログラム: 「単一のプログラムは速くならないが,
複数のプログラムを実行しても遅くならない」
Advanced Computer Architecture
スループット指向 MTP の戦略
スループット指向 MTP の戦略: 計算資源の利用効率の向上 シングル・スレッドでは使いきれない計算資源の活用
使い切れない原因:レイテンシ 依存関係:レイテンシ分の空きスロット,バブル 予測ミス:ペナルティ分の空きスロット,バブル
実際的な主要因: データ依存 分岐予測ミス キャッシュ・ミス
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)
Advanced Computer Architecture
細粒度 MTP の効果
cyclecycle
Advanced Computer Architecture
粗粒度 MTP の効果
キャッシュミス
キャッシュミス
cycle
Advanced Computer Architecture
SMT の効果
演算器 演算器 演算器
cycle cycle
Advanced Computer Architecture
SMT
Advanced Computer Architecture
Advanced Computer Architecture
AdvancedComputer
Architecture
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
AdvancedComputer
Architecture
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture