タイル構造のメニーコアアーキテクチャ向けの
スケーラブルなロックアルゴリズム
理学部情報科学科4年 加藤研究室
粟本 真一
背景
次世代のメニーコアアーキテクチャ製品の市場への投入
http://www.mellanox.com/uploads/product_families/cat_434/gfx_03543.jpg
https://simplecore.intel.com/newsroom/wp-content/uploads/sites/11/2016/06/intel-xeon-phi-p
rocessor-stacked-front-back.jpg
2
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
3
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
ロックスレッド
ロック解放後、次にそのロックを獲
得するスレッドは
①同一タイル上のスレッド
②異なるタイル上のスレッド
の2通り
4
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
待機スレッド ロックスレッド
release
①同一タイル上の場合
キャッシュ上でロックの
解放と確保
acquire
5
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
②異なるタイル上の場合
メインメモリを経由
→遅延大
ロックスレッド
タイル
コアコア
L2 cache
L1
cache
L1
cache
待機スレッド
release
acquire
6
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
ロックスレッド
タイル
コアコア
L2 cache
L1
cache
L1
cache
待機スレッド
待機スレッド
✖ 高コスト
◎ 低コスト
同一タイル内でのロックの解放、
確保がロックコストを低減
7
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
ロックスレッド
タイル
コアコア
L2 cache
L1
cache
L1
cache
待機スレッド
待機スレッド
待機スレッド
待機スレッド
待機スレッド
「階層ロック」
タイル内に待機スレッド存在時は
それらのスレッドがロック獲得
8
Radovic, 2003, HPCA '03
Luchangco, 2006, Euro-Par'06
Chabbi, 2015, SIGPLAN Not.
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
ロックスレッド
タイル
コアコア
L2 cache
L1
cache
L1
cache
待機スレッド
待機スレッド
待機スレッド
待機スレッド
待機スレッド
「階層ロック」
タイル内の待機スレッド処理後は
別のタイルがロック獲得
9
Radovic, 2003, HPCA '03
Luchangco, 2006, Euro-Par'06
Chabbi, 2015, SIGPLAN Not.
メッシュタイル構造のメニーコア
タイル DDR
Memoryコアコア
L2 cache
L1
cache
L1
cache
ロックスレッド
タイル
コアコア
L2 cache
L1
cache
L1
cache
待機スレッド
待機スレッド
待機スレッド
待機スレッド
待機スレッド
タイル間
ロック
タイル内
ロック
タイル内
ロック
タイル内
ロック
10
関連研究 Simple
test-and-set
busy loop
TTS
Ticket
TTS with
exp backoff
Anderson
CLH
MCS
HCLH
busy wait on cache
fairness
backoff
array based
queue basedhierarchical
Rudolph et al,1984
SIGARCH Comput.
Archit. News
Reed et al, 1979
Commun. ACM
Anderson, 1990
IEEE Transactions on
Parallel and Distributed
Systems
Anderson, 1990
IEEE Transactions on
Parallel and Distributed
Systems
Craig et al, 1993
Building FIFO and Priority-Queuing Spin
Locks from Atomic Swap
Mellor-Clummey et al, 1991
Luchangco, 2006
Proceedings of the 12th
International
Conference on Parallel
Processing
11
タイル間とタイル内で異なるアルゴリズムを用いる事が可能な
階層ロックを提案
○ 内部のロックは既存の任意のロックを格納可能
○ 既存手法(HCLH等)と比較して汎用性向上
Contribution
HCLHでは
全てのロックがCLH
タイル間
ロック
タイル内
ロック
タイル内
ロック
タイル内
ロック
異なるロックを
割り当てたい。
12
設計と実装
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
spin
13
設計と実装
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
spinrelease
1. ロック解放時の処理
14
設計と実装
タイル内
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
spin
パターンA:
同一タイル内に待機中の
スレッドが存在
ロック解放
スレッド
15
設計と実装
タイル内
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
パターンA:
ロック獲得
ロック解放
スレッド
ロック獲得
スレッド
acquire
16
設計と実装
タイル内
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
パターンB:
タイル内に待機中のスレッドが
存在しない場合
ロック解放
スレッド
ロック獲得
スレッド
release
17
設計と実装
タイル内
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
ロック解放
スレッド
ロック解放
スレッド
release
パターンB:
タイル間ロックを解除
18
設計と実装
タイル内
ロック獲得
スレッド
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
ロック解放
スレッド
ロック解放
スレッド
acquire
パターンB:
次のタイルがロック獲得
19
設計と実装
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
ロック解放
スレッド
ロック解放
スレッド
パターンB:
タイル間ロックとタイル内ロックの
双方を獲得したスレッドが
ロック獲得とみなされる
ロック獲得
スレッド
20
設計と実装
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
spin
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
ロック解放
スレッド
ロック解放
スレッド
ロック獲得
スレッド
acquire 2. ロック獲得時
21
設計と実装
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
ロック解放
スレッド
ロック獲得
スレッド
spin
タイル内ロックを獲得できたら、
タイル間ロックの獲得を試行
タイル内
ロック獲得
スレッド
22
設計と実装
タイル内
ロック獲得
スレッド
待機
スレッド
待機
スレッド
待機
スレッド
同一タイル
http://www.crucial.com/wcsstore/CrucialSAS/images/product-pages/crucial-ddr4-rdimm-dynamic.png
タイル間
ロック
タイル内
ロック
http://core0.staticworld.net/images/article/2016/12/kby_lake_s_persp_front_low_05
_whitebkg-100700593-orig.jpg
spin
spin
ロック解放
スレッド
ロック解放
スレッド
ロック獲得
スレッド
spin
この設計により、
階層間にそれぞれ異なるロックを
用いる事が可能
また、各ロックが持つ性質を
引き継ぐ事も可能
23
Xeon Phi向けに軽量OSカーネルを開発
関連研究は8例実装
評価
workload A
loop {
lock_acquire();
lock_release();
}
workload B
loop {
lock_acquire();
memcpy(local, global, N);
lock_release();
calc(); // O(N2
)
}
2つのワークロードを用意
24
評価
workload A
loop {
lock_acquire();
lock_release();
}
workload B
loop {
lock_acquire();
memcpy(local, global, N);
lock_release();
calc(); // O(N2
)
}
2つのワークロードを用意
lock性能測定
現実の計算アプリケーション
を模倣
ロック確保間隔と性能の
関係性の評価
※全てのスレッドにおける各ループのイテレーションの合計が事前に定めた定数値に達す
るまでの時間を計測し、この試行を20回行った平均が最終的な実験データ
25
評価環境
Intel Xeon Phi 7210(256スレッド、96GB DDR4メモリ)
Knights Landing: Second-Generation Intel Xeon Phi Product, IEEE Micro, 2016
● 各ハードウェアスレッドに一つのソフトウェアスレッドをマッピング
● スレッド数を変化させる実験では、使用しないスレッドは mwait命令を使用してC1 stateに設定
○ メモリバスの通信を抑え、正確な実験データを得るため
● 実行前にCLFLUSH命令でキャッシュクリア済み 26
既存手法の評価結果
タイル内、タイル間のスレッド間でロックを測定した結果
5000010000
タイル内 タイル間
←差は5倍→
27
既存手法と提案手法の比較
25%高速
既存手法(階層ロック)
提案手法(MCS & Ticket)
28
考察
1. タイル間ロックが高速なロックとタイル内ロックが高速なロック
を組み合わせる事で、スピンロックの性能が向上
○ ワークロードによっては既存手法よりも最大25%高速
○ 競合がある程度生じており、同一タイル内に複数のロック獲得待ちス
レッドが存在する状態が理想
2. 一方、タイル内にロック獲得待ちスレッドが一つしか存在しない
ような状況では性能が劣化
○ 二回ロックを取る必要があるため
29
結論
● タイル構造のメニーコアアーキテクチャにおける不均一なロッ
クコストを、独自に設計した階層ロックアルゴリズムを用いる事
で改善し、性能を最大25%高速化
● 今後の課題
○ タイル内に待機スレッドが存在しない状況では、二段階のロックを取得
する手間を一段階に省略する事で、多様なワークロードに対応
30

More Related Content

PDF
OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二
PDF
Tsuji Master Thesis
PDF
Taniguchi master thesis
PDF
Hirafuji Master Thesis
PDF
Yamada bachelor thesis
PDF
Awamoto master thesis
PDF
Muramatsu Bachelor Thesis
PPTX
Gotanda Bachelor Thesis
OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二
Tsuji Master Thesis
Taniguchi master thesis
Hirafuji Master Thesis
Yamada bachelor thesis
Awamoto master thesis
Muramatsu Bachelor Thesis
Gotanda Bachelor Thesis

More from pflab (20)

PPTX
Takahashi Bachelor thesis
PDF
Tatsuya Sueki Master thesis
PPTX
Tomoya Sato Master Thesis
PPTX
Miyoshi Bachelor Thesis
PPTX
Ikarashi Bachelor Thesis
PDF
Akihiro Sakurai Bachelor Thesis
PDF
Yuto Mochizuki bachelor thesis
PDF
Yoshio Kato Bachelor Thesis
PDF
Junnosuke Mizutani Bachelor Thesis
PPTX
Cho Bachelor Thesis
PDF
Tatsuya Sueki Bachelor Thesis
PDF
Shusaku Taniguchi Bachelor Thesis
PDF
Shogo Yamazaki Bachelor Thesis
PDF
Hidehito Yabuuchi Bachelor Thesis
PDF
Yu Sasaki Bachelor Thesis
PDF
Tomoya Sato Bachelor Thesis
PDF
Kazumasa Sakiyama Bachelor Thesis
PDF
Akihiro Aritoshi Bachelor Thesis
PDF
輪講_Awamoto_20170601
PDF
輪講_Sakiyama_20170601
Takahashi Bachelor thesis
Tatsuya Sueki Master thesis
Tomoya Sato Master Thesis
Miyoshi Bachelor Thesis
Ikarashi Bachelor Thesis
Akihiro Sakurai Bachelor Thesis
Yuto Mochizuki bachelor thesis
Yoshio Kato Bachelor Thesis
Junnosuke Mizutani Bachelor Thesis
Cho Bachelor Thesis
Tatsuya Sueki Bachelor Thesis
Shusaku Taniguchi Bachelor Thesis
Shogo Yamazaki Bachelor Thesis
Hidehito Yabuuchi Bachelor Thesis
Yu Sasaki Bachelor Thesis
Tomoya Sato Bachelor Thesis
Kazumasa Sakiyama Bachelor Thesis
Akihiro Aritoshi Bachelor Thesis
輪講_Awamoto_20170601
輪講_Sakiyama_20170601
Ad

Shinichi Awamoto Bachelor Thesis