いいかげんな人のためのTransactional Memory Primer

5,311 views

Published on

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,311
On SlideShare
0
From Embeds
0
Number of Embeds
515
Actions
Shares
0
Downloads
28
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

いいかげんな人のためのTransactional Memory Primer

  1. 1. はやみず ゆうと
  2. 2. はやみず ゆうと (早水 悠登) id:hayamiz, @hayamiz 修士課程 入院1年目 研究室:情報爆発の爆心地 就職活動中 だれか雇って! 卒論:Transactional Memory関係 現在:データベース関係 Transactional Memory Primer 2
  3. 3. 1. Transactional Memory(TM)とは 2. 現状(のような話) 1. Hardware TM 2. Software TM 3. STMメリット、デメリット 4. (時間があったら)おまけ Transactional Memory Primer 3
  4. 4. 知ってる人はどのくらいいる? Transactional Memory Primer 4
  5. 5. 並列プログラムの同期手法の1つ ロック(排他的制御)によっておこる困った 問題をいくつか解決してくれる Dead lock Priority inversion … ×ロックの代替 Transactional Memory Primer 5
  6. 6. ロックによる並列制御 スレッドA スレッドB Lock(m) Lock(m) Transactional Memory Primer 6
  7. 7. ロックによる並列制御 スレッドA スレッドB Start Txn Start Txn TMload(x) TMstore(y,x+1) 衝突 TMload(y) TMstore(x,y+1) Restart Txn Transactional Memory Primer 7
  8. 8. ロック 排他的 悲観的 … みんなでさわるとマズいよね、、、 Transactional Memory 投機的 楽観的 … マズいことになったらリセットすれ ばいいじゃん イメージはつかめましたか? Transactional Memory Primer 8
  9. 9. クリティカルセクション →トランザクション Lock(mutex) → Start transaction Unlock(mutex) → Commit transaction 共有メモリアクセス → TMのメモリアクセスAPI Transactional Memory Primer 9
  10. 10. 1. Transactional Memory(TM)とは 2. 現状(のような話) 1. Hardware TM 2. Software TM 3. STMメリット、デメリット Transactional Memory Primer 10
  11. 11. 1. Hardware Transactional Memory 2. Software Transactional Memory Hybrid Transactional Memory 忘れ去られてる感 Transactional Memory Primer 11
  12. 12. 元祖TM (Maurice Herlihy, 1993) 最近まで:シミュレータの実装のみ 最近:Sun Rock Processor とうとう動くハードウェアが登場か? 延期 延期 Transactional Memory Primer 12
  13. 13. Sun買収 \(^o^)/ Transactional Memory Primer 13
  14. 14. Sun Rock Processor プロトタイプ実装の論文は出ている 何ができるの? K-word Compare&Swap が作れたり 効率良く lock-free data structure が実装できたり 複雑な処理 × トランザクションのリスタート:TLB miss, async interrupt, branch misprediction, floating point division, … Transactional Memory Primer 14
  15. 15. アカデミックの世界で流行 PPoPP 2007 2本 PPoPP 2008 9本 PPoPP 2009 4本 PPoPP 2010 8本 ライブラリ、言語も増えつつある DSTM2(Java), Deuce STM(Java), TinySTM(C/C++), TL2(C), RSTM(C++), Clojure Transactional Memory Primer 15
  16. 16. 使い物になるの? 速さが必要なものには使えない 2~3倍遅くなる スクリプト言語の機能としてはアリでは? 複雑なデータ構造:有効そう 例:巨大なグラフ、ハッシュテーブル →各スレッドは一度にごく一部しか編集しない →データの競合がない →スケールする Transactional Memory Primer 16
  17. 17. 1. Transactional Memory(TM)とは 2. 現状(のような話) 1. Hardware TM 2. Software TM 3. STMメリット、デメリット Transactional Memory Primer 17
  18. 18. Hardware TM … できないことが多すぎる ので割愛 Transactional Memory Primer 18
  19. 19. ○ Deadlockが起こらない ヤバくなったらリセットすればおk Transactional Memory Primer 19
  20. 20. ○ Composable ロックを使ったプログラム … ロックする順番 に気をつける必要 STM … どんどんトランザクションをネストし てもおk Transactional Memory Primer 20
  21. 21. ○ Composable Lock(A) Lock(B) Function Function call Lock(B) call Lock(A) 祝・デッドロック Transactional Memory Primer 21
  22. 22. ○ Priority inversionがおきない High うごけない!! Middle Low Priority Transactional Memory Primer 22
  23. 23. ○ Priority inversionがおきない Mars Pathfinder Priority inversionが 原因で再起動 Realtime systemで は致命的 Transactional Memory Primer 23
  24. 24. ○ Priority inversionがおきない トランザクション同時が衝突したとき 優先度に応じてリスタートするトランザク ションを決定 できるらしい Transactional Memory Primer 24
  25. 25. × データ競合が頻発する場合くそ遅い トランザクションがリスタートしまくる カウンタのインクリメント 線形リストのinsertion, deletion Transactional Memory Primer 25
  26. 26. × 取り消し可能な命令しかトランザク ション中に実行できない リスタートできないといけない I/Oができない!!! I/Oを実行するトランザクションは排他的に、 という逃げの手段も TMのメリットが損なわれてしまう Transactional Memory Primer 26
  27. 27. ほかにもいろいろ、、、 もう忘れました Transactional Memory Primer 27
  28. 28. Hardware TM 搭載製品が世に出ることはあるのだろうか、、 Software TM いろいろ制限はあるけれど いろいろメリットもあります 嬉しいシーンはあるはず Clojure! Transactional Memory Primer 28
  29. 29. 道具としてのsoftware transactional memory Atomic blockの一実装 parallelFor(i <- 0..99) { atomic { y[i] = x[i+1] + x[i]; } } Lock Allocation Transactional Memory Primer 29

×