いいかげんな人のためのTransactional Memory Primer
- 2. はやみず ゆうと (早水 悠登)
id:hayamiz, @hayamiz
修士課程 入院1年目
研究室:情報爆発の爆心地
就職活動中 だれか雇って!
卒論:Transactional Memory関係
現在:データベース関係
Transactional Memory Primer 2
- 3. 1. Transactional Memory(TM)とは
2. 現状(のような話)
1. Hardware TM
2. Software TM
3. STMメリット、デメリット
4. (時間があったら)おまけ
Transactional Memory Primer 3
- 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. ロック
排他的
悲観的 … みんなでさわるとマズいよね、、、
Transactional Memory
投機的
楽観的 … マズいことになったらリセットすれ
ばいいじゃん
イメージはつかめましたか?
Transactional Memory Primer 8
- 10. 1. Transactional Memory(TM)とは
2. 現状(のような話)
1. Hardware TM
2. Software TM
3. STMメリット、デメリット
Transactional Memory Primer 10
- 11. 1. Hardware Transactional Memory
2. Software Transactional Memory
Hybrid Transactional Memory
忘れ去られてる感
Transactional Memory Primer 11
- 12. 元祖TM (Maurice Herlihy, 1993)
最近まで:シミュレータの実装のみ
最近:Sun Rock Processor
とうとう動くハードウェアが登場か?
延期
延期
Transactional Memory Primer 12
- 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. アカデミックの世界で流行
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
- 17. 1. Transactional Memory(TM)とは
2. 現状(のような話)
1. Hardware TM
2. Software TM
3. STMメリット、デメリット
Transactional Memory Primer 17
- 18. Hardware TM … できないことが多すぎる
ので割愛
Transactional Memory Primer 18
- 21. ○ Composable
Lock(A) Lock(B)
Function Function
call Lock(B) call Lock(A)
祝・デッドロック
Transactional Memory Primer 21
- 23. ○ Priority inversionがおきない
Mars Pathfinder
Priority inversionが
原因で再起動
Realtime systemで
は致命的
Transactional Memory Primer 23