Session K: Concurrency ICSE2014 勉強会 担当:東工大 情報理工 小林隆志 <[email protected]> References [K1] CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Yanyan Jiang et al. Proc. ICSE2014, pp.457-467 [K2] Inferring Models of Concurrent Systems from Logs of Their Behavior with Csight Ivan Beschastnikh et al. Proc. ICSE2014, pp.468-479 [K3] Unleashing Concurrency for Irregular Data Structures Peng Liu and Charles Zhang. Proc. ICSE2014, pp.480-490 [K4] ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Yan Cai et al. Proc.ICSE2014, pp.491-502 1 ICSE2014勉強会 SessionD 2014/7/22 K1 CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Y. Jiang, T. Gu, C. Xu, X. Ma, J. Lu (Nanjing U) 分野:並列プログラム向け Record & Replay tool 種別:動的解析 (Java),Record & Replay 論文概要: 所感: 2 並列プログラムの実行トレース取得において, read-write依存の キャッシュを用いて,記録する実行オーバヘッドとログの量を大 幅に削減する手法CAREを提案. 香港科技大チームの既存研究LEAP[FSE2010], Stride[ICSE2012]との 性能比較により優位であることを評価 Replayの正確性を失うのではないか※と思うほどシンプルな発想. Record & Replayができるところまでしっかり実装して実験してい る点,改善点がクリアな点が採録のポイント ※ 著者に確認したところ特定の条件では正確ではないが,それはレアケース. そもそもそれは既存研究でも正確に記録できない問題とのこと ICSE2014勉強会 SessionD 2014/7/22 K1 CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Y. Jiang, T. Gu, C. Xu, X. Ma, J. Lu (Nanjing U) 並列プログラムの実行トレース取得 LEAP では スレッド間の変数アクセスの全順序を保存 するために,計装個所でモニタを利用するため実行 オーバヘッドが大きい Thread #1 Thread #2 x=1 read(x) この実行順序を 保存するために モニタを利用 read(x) 3 ICSE2014勉強会 SessionD 2014/7/22 K1 CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Y. Jiang, T. Gu, C. Xu, X. Ma, J. Lu (Nanjing U) Key Idea: Shared Memory とのアクセスをキャッ シュし,不要なアクセスのログを取らない Thread #1 x=1 read(x) 4 d = read(x) d = read(x) if ( read(x) is NOT thread-local) { synchronized(x) { d=read(x) log() } } 基本方針: Thread-localのReadは Lock/Record不要 (リプレイできる) ICSE2014勉強会 SessionD 2014/7/22 K1 CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Y. Jiang, T. Gu, C. Xu, X. Ma, J. Lu (Nanjing U) 「read(x) is NOT thread-local」はどう判定するか? 基本的な考え方 Optimistic Thread-locality Occurrence Detector Threadごとに 各変数の値を記録 値に変化が あったら NOT Thread-local いくつか制約があるため 経験則を利用して解決して いる(Sect 4) Reprinted from [1] “Fig 2: Illustration of refetching” 5 ICSE2014勉強会 SessionD 2014/7/22 K1 CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Y. Jiang, T. Gu, C. Xu, X. Ma, J. Lu (Nanjing U) 「read(x) is NOT thread-local」はどう判定するか? 基本的な考え方 Optimistic Thread-locality Occurrence Detector Threadごとに 各変数の値を記録 値に変化が あったら NOT Thread-local いくつか制約があるため 経験則を利用して解決して いる(Sect 4) Reprinted from [K1] “Fig 2: Illustration of refetching” 6 ICSE2014勉強会 SessionD 2014/7/22 K1 CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Y. Jiang, T. Gu, C. Xu, X. Ma, J. Lu (Nanjing U) 評価 Reprinted from [K1] “Tab 1: Comparison of CARE and LEAP under benchmark programs” 対LEAPで,ログサイズ,オーバヘッドともに大幅に改善. 2.5%(Tsp) ~ 58.9% (Xalan) Log Size 0.3%(Tsp) ~ 65.1% (Batik) Overhead 7 対Stride では,XalanでMoldynでオーバーヘッドが悪化 StrideはSynchronizedせず値を保存するため ICSE2014勉強会 SessionD 2014/7/22 Session K: Concurrency ICSE2014 勉強会 担当:東工大 情報理工 小林隆志 <[email protected]> References [K1] CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Yanyan Jiang et al. Proc. ICSE2014, pp.457-467 [K2] Inferring Models of Concurrent Systems from Logs of Their Behavior with Csight Ivan Beschastnikh et al. Proc. ICSE2014, pp.468-479 [K3] Unleashing Concurrency for Irregular Data Structures Peng Liu and Charles Zhang. Proc. ICSE2014, pp.480-490 [K4] ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Yan Cai et al. Proc.ICSE2014, pp.491-502 8 ICSE2014勉強会 SessionD 2014/7/22 K2 Inferring Models of Concurrent Systems from Logs of Their Behavior with Csight I. Beschastnikh(UBC), Y. Brun(U Mass.), M. D. Ernst, A. Krishnamurthy(U Wash.) 分野:Model inference (Specification Mining, Process discovery) 種別:動的解析,リバースエンジニアリング 論文概要: 並行プログラムのイベントトレースから並行プロセスモデル (Comm. FSMベース)を復元する手法 CSightを提案.著者らの手法 (FSE2011)を改良.マイニングの際のInvariant情報を活用する部分 がポイント. 復元したCFSMモデルを使って,バグ発見のUser Studyをしている. 所感: 9 バグを含む2システムを,39人の学生が調査 発表が大変わかりやすかった.CFSMを正確に復元できることだ けでなく,抽出したCFSMがデバッグに役立つという評価 (positive feedbackだったという内容だが)をしている点が採録のポイントか ICSE2014勉強会 SessionD 2014/7/22 K2 Inferring Models of Concurrent Systems from Logs of Their Behavior with Csight I. Beschastnikh(UBC), Y. Brun(U Mass.), M. D. Ernst, A. Krishnamurthy(U Wash.) イベントのtemporal invariants Time-Space DAG に変換 Reprinted from [K2] “Fig2. CSight process flow.” 10 ICSE2014勉強会 SessionD 例: Proc1.send() is alwaysfollowed-by Proc2.receive() ① State-based DAG に変換 ② Initial Global Model を作成 Invariantsを満たさないなら, Global モデルを修正して, Abstractをやり直し 2014/7/22 K2 Inferring Models of Concurrent Systems from Logs of Their Behavior with Csight I. Beschastnikh(UBC), Y. Brun(U Mass.), M. D. Ernst, A. Krishnamurthy(U Wash.) 評価 (復元性能) Voldemort DHT 11 Unit Test の実行ログを入力に利用 モデルは正しいが,一部復元できていない挙動があった TCP opening/closing handshake netcat/dummynet/tcpdump のログを利用 モデルの抽象度に一部問題があった ICSE2014勉強会 SessionD Reprinted from [K2] “Fig. 8” and “Fig.9” 2014/7/22 Session K: Concurrency ICSE2014 勉強会 担当:東工大 情報理工 小林隆志 <[email protected]> References [K1] CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Yanyan Jiang et al. Proc. ICSE2014, pp.457-467 [K2] Inferring Models of Concurrent Systems from Logs of Their Behavior with Csight Ivan Beschastnikh et al. Proc. ICSE2014, pp.468-479 [K3] Unleashing Concurrency for Irregular Data Structures Peng Liu and Charles Zhang. Proc. ICSE2014, pp.480-490 [K4] ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs 1 2 Yan Cai et al. Proc.ICSE2014, pp.491-502 ICSE2014勉強会 SessionD 2014/7/22 K3 Unleashing Concurrency for Irregular Data Structures P. Liu (Wuhan U) and C Zang (Hong Kong Univ of Sci. Tech.) 分野:適切なLock範囲の自動決定 種別:Lockアルゴリズム,パフォーマンス 論文概要: 所感: 13 Multiple Granularity Lockingを導入して,木構造を構成するオブ ジェクトに対するロックの効率化を行う.既存ライブラリに適用 し,7-20%のspeedup を実現. (Tomcatの例では ConcurrentHashMap を使用する個所の改善効果により60%速度改善) DBMS等で利用されている古典的なMultiple Granularity Lockingを 利用するもので,1) (対象の構造は限定的だが)自動的にロック モードを選択できる点,2) 実装をして性能評価をした点, が評価されたか? ICSE2014勉強会 SessionD 2014/7/22 K3 Unleashing Concurrency for Irregular Data Structures P. Liu (Wuhan U) and C Zang (Hong Kong Univ of Sci. Tech.) 参考:Multiple Granularity Locking Giant Lock を防ぐために,同一対象に対して, 部分的にロックを取得・拡張することで排他制御を細粒度に 行うための仕組み 弱い順に以下の5つのロックモードが存在する. IS (Intention Shared) = 階層に S Lockをかける「意図」 IX (Intention eXclusive) = 階層に X Lockをかける「意図」 S (Shared) = DBMSだと Select 用 SIX (Shared Intention eXclusive) = IXと違いIXでの上書き不可 14 ⇒ 今回の手法ではなし X (eXclusive) = DBMS だと Insert/Update/Delete S/X Lockが欲しい場合には,上位ノードのIS/IXを とってから取得することで排他制御. 下位(=部分)を変更しているときに上位(=全体)は変更できない ロックモード間の上書き可能経路が決まっている (詳細は省略) ICSE2014勉強会 SessionD 2014/7/22 K3 Unleashing Concurrency for Irregular Data Structures P. Liu (Wuhan U) and C Zang (Hong Kong Univ of Sci. Tech.) 基本コンセプト オブジェクトグラフに対して,MGLを適用 Reprinted from [K3] “Fig2. The update of a field affects the accesses to the descendant fields. .” 手法の流れ Abstract Object Graph (AOG)を構成. 副作用の内容から,MGL tagを割り当て TAOGを作成 TAOGから最適なロックを生成 15 lock.IX().acquire() などをjava.util.concurrentに実装. ICSE2014勉強会 SessionD 2014/7/22 K3 Unleashing Concurrency for Irregular Data Structures P. Liu (Wuhan U) and C Zang (Hong Kong Univ of Sci. Tech.) TAOGの例 ( SynchronizedCache#get() @ Cache4j ) Reprinted from [K3] “Fig7. (a) Tagged AOG produced for the method get, the number in each node denotes the hashcode of the points-to set represented by the node.” 16 副作用を与えるかどうかによって,X, IX, IS の ロックモードが自動的に割り当てられる. ICSE2014勉強会 SessionD 2014/7/22 K3 Unleashing Concurrency for Irregular Data Structures P. Liu (Wuhan U) and C Zang (Hong Kong Univ of Sci. Tech.) 性能評価 カーブの形状に着目! カーブの形状 本手法により並列効果が出ている に着目! (適用前は並列化により実行時間が増えている) 適切な並列効果 Reprinted from [K3] “Fig9 Performance comparison for (a) Jgrapht (b) STMBench7 (c) Tomcat (d) Tuplesoup..” Giant Lockがなくなるため,Thread数(横軸)が増えると, 多くのアプリで実行時間(縦軸)の軽減率が向上 ※ (b) だけ 縦軸はスループット (上にある方が良い) 17 ICSE2014勉強会 SessionD 2014/7/22 Session K: Concurrency ICSE2014 勉強会 担当:東工大 情報理工 小林隆志 <[email protected]> References [K1] CARE: Cache Guided Deterministic Replay for Concurrent Java Programs Yanyan Jiang et al. Proc. ICSE2014, pp.457-467 [K2] Inferring Models of Concurrent Systems from Logs of Their Behavior with Csight Ivan Beschastnikh et al. Proc. ICSE2014, pp.468-479 [K3] Unleashing Concurrency for Irregular Data Structures Peng Liu and Charles Zhang. Proc. ICSE2014, pp.480-490 [K4] ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs 1 8 Yan Cai et al. Proc.ICSE2014, pp.491-502 ICSE2014勉強会 SessionD 2014/7/22 K4 ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Y. Cai, S. Wu, W.K.Chan (City U. Hong Kong) 分野:デッドロック検出 種別:動的解析 論文概要: 所感: 19 スケジューリング制約を表現するために,happen-before-relation を拡張した,should-happen-before関係(SHBR)を定義し,デッド ロックの検出とスケジュール違反のレポートを生成する手法 を提案 専門からちょっと遠いので,正直,新規性がよく読み取れなかっ た論文.発表もよく分かりませんでした…. ICSE2014勉強会 SessionD 2014/7/22 K4 ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Y. Cai, S. Wu, W.K.Chan (City U. Hong Kong) happen-before-relation: 𝑒1 → 𝑒2 ) イベント 𝑒1 , 𝑒2 が 同一スレッドで実行され 実行トレースで 𝑒1 , 𝑒2 の准で観測される. 𝑒1 がスレッド 𝑡1 でのロックmの解放で, 𝑒2 がスレッド𝑡2 でのロックmの取得であり,𝑡1 ≠ 𝑡2 Should-happen-before-relation: 𝑒 ⇒ 𝑒𝛼 (論文では ) あるサイクル𝑐の間にスレッド𝑡1 によって起きた イベント𝑒𝑖 を 𝜖(𝑐, 𝑡𝑖 ) と表記すると 𝑚 ∈ 𝑊𝑊𝑊𝑊𝑘𝑐 𝑎𝑎𝑎 𝑒 → 𝜖 𝑐, 𝑡 𝑎𝑎𝑎 𝑒𝛼 = 𝜖(𝑐, 𝑡𝛼 ) 20 (論文では つまり,あるロック集合Wlockに属するロックに対して, 一定時間 c で happen-before-relation があること. ICSE2014勉強会 SessionD 2014/7/22 K4 ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Y. Cai, S. Wu, W.K.Chan (City U. Hong Kong) HBR と SHBRの違い Reprinted from [K4] “Fig3.Examples of Rule1 and Rule2 on Execution2” 21 ICSE2014勉強会 SessionD 2014/7/22 K4 ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Y. Cai, S. Wu, W.K.Chan (City U. Hong Kong) SHBR関係の簡約 Reprinted from [K4] “Fig4. Reduction of constraints and selection of nearest scheduling points with respect to the cycle c 0 and Execution 2 ” 22 ICSE2014勉強会 SessionD 2014/7/22 K4 ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Y. Cai, S. Wu, W.K.Chan (City U. Hong Kong) 性能評価 Reprinted from [K4] “Tab. 2 : Experimental results comparisons among PCT, MagicScheduler (MS), DeadlockFuzzer (DF), and ConLock (CL) ” 23 メモリ不足にもならず全ての実行が可能 ICSE2014勉強会 SessionD 2014/7/22 K4 ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs Y. Cai, S. Wu, W.K.Chan (City U. Hong Kong) 性能評価 全てのDLを検出 24 ICSE2014勉強会 SessionD Reprinted from [K4] “Tab. 3 and Tab.4” メモリ不足にもほぼ ならず全実行が可能 現実的な時間で終了 2014/7/22
© Copyright 2024 ExpyDoc