平成 25 年度創成シミュレーション工学専攻修士論文梗概集 計算システム工学分野 実行並列度の自動調整による ハードウェアトランザクショナルメモリの高速化 学籍番号 24413571 氏名 堀場 匠一朗 指導教員名 津邑 公暁 1 はじめに マルチコアを用いた並列プログラミングでは,一 般的に共有リソースへのアクセス制御にロックが用 いられてきたが,この場合デッドロックの発生や並 列性の低下等の問題がある.そこで,ロックを用い ない並行性制御機構としてトランザクショナルメモ リ[1](以下,TM)が提案されている.このTMを ハードウェア上に実現したものはHTMと呼ばれ,一 般にロックと比較して並列性が向上する.しかし, 実行されるアプリケーション等によって適切な並列 度は異なるため,効率的なスケジューリングが行わ れない場合にはTx(以下,Tx)のアボートやストー ルが頻発する可能性がある.そこで本研究では,こ の問題を効果的に解決する手法を提案する. 2 ハードウェアトランザクショナルメモリ HTMでは,Txとして定義された命令列のSerializability 図 1: 競合および無駄なストールの発生 とAtomicityを保証するため,Tx内でアクセスされるメモ その後実行されるwriteアクセスにより結局競合や リアドレスを監視する.そして複数のTx間で同一アドレ アボートが発生してしまう. また,これにより無駄 スへのアクセスが発生した場合Read afterWrite(RaW), なストールが発生する.そこで,アボートが引き起 Write after Read(WaR),Write after Write(WaW)の3 こされたアドレスへのそれ以降のアクセスを動的に パターンのアクセスが発生した場合に競合として検出さ 逐次実行し,並列度を低減させることで競合やそれ れる.競合が発生した場合,片方のTxの実行を中断する にともなうアボートを抑制する手法を提案する. (ストール).さらに複数のTxがストールしている状態 4 実行並列度の向上によるストールの削減 でデッドロックの可能性があると判断された場合,それに 競合が発生する場合,これを検出したスレッドは, 関わるどれか1つのTxの実行結果を破棄する(アボート). 実行中のTxをストールさせる必要がある.しかしな そしてアボートされたTxの開始時点の状態を復元し,Tx がら,図2の例のように, あるスレッドが特定のア を再実行する.このように,TMはロックによる排他制御 ドレスにアクセスした後,同一アドレスに対して再 と同等のセマンティクスを維持しつつ,競合が発生しない 度アクセスすることなくコミットに至るのであれば, 限りTxを並列に実行することができる. 他スレッドがそのコミットに先行して当該アドレス 3 実行並列度の低減による競合の抑制 上の値を書き換えたとしても,一貫性は保たれる. 一般に,共有変数へのreadアクセスは,その後に そこで,競合が発生したとしても,競合相手がコミ writeアクセスをともなう場合が多く見られる.この ットまで到達すると仮定して投機的に実行を継続す ような操作を含むTxが複数のスレッドによって並 ることで並列度を増大させる手法を提案する. 行実行される場合,図1に示すように,両スレッドの readアクセスが競合とならず許可されたとしても, 5 評価 2つの提案手法をHTMの研究で広く用いられてい 平成 25 年度創成シミュレーション工学専攻修士論文梗概集 計算システム工学分野 る3つのフェーズのうち,1つめのフェーズの実行 終了後,その内部で変更された共有データはこれ以 降参照されておらず,そのコミットに先立って他の 図 2: 競合の発生による並列度の低下 スレッドによるアクセスが投機的に実行可能となっ たためであると考えられる. 最後に,(H) では (P1) るLogTM[2]に実装し,評価を行った.評価には に対して総実行サイクル数の削減されたプログラム GEMS付属のmicrobench,SPLASH-2,STAMPから6 が多く見られた. 種類のプログラムを用いた. 実行サイクル数比を図3 6 おわりに に示す.図中の凡例はサイクル数の内訳を示してお 本論文では,HTM におけるTx の実行時に悪影響 り,Non-transはTx外の実行サイクル数,Good-trans を及ぼす競合パターンを解決するための手法を2 つ はコミットされたTxの実行サイクル数,Bad-transは 提案した.まず,アボートが引き起こされる原因と アボートされたTxの実行サイクル数,Abortingはア なったアドレスへのそれ以降のアクセスを逐次実行 ボート処理に要したサイクル数,Backoffはバックオ することで,実行並列度をあえて低減させる手法を フ処理に要したサイクル数,Barrierはバリア同期に 提案した.また,競合が発生したとしても投機的に 要したサイクル数,Stallはストールに要したサイク 実行を継続させることでTx の実行並列度を向上さ ル数,Waitは各提案手法で追加した待機処理に要し せる手法を提案した.これら2 つの手法を組み合わ たサイクル数をそれぞれ示している.また,4 本の せたモデルは既存モデルに対して最大33.0%,16 グラフは左から順に(B)既存のLogTM,(P1)実行並列 スレッドで平均3.2%の実行サイクル数を削減した. 度の低減により競合を抑制する提案手法,(P2)実行 今後の課題として,逐次実行の対象となるアクセス 並列度の向上によりストールを削減する提案モデル, をより適切に決定する手法の考案および,投機的実 (H)2つの提案手法を組み合わせたモデルの結果を示 行を適用するか否かを動的に判定できる機構を実現 しており,(B)のサイクル数を1として正規化した. することが挙げられる. まず,(P1) ではPrioque において実行サイクル数 6 参考文献 の大幅な減少率が目立つ.この原因を調査したとこ [1] Herlihy, M. and Moss, J. E. B.: Transactional ろ,プログラム中には共有変数に対する複合操作を Memory: Architectural Support for Lock-Free Data 行うTx が含まれており,提案手法の適用により同 Structures, Proc. 20th Annual Int’l Symp. On 一アドレスへの複合操作を並列実行することで発生 Computer Architecture, pp. 289–300 (1993). していたストールや,それに起因するアボートを十 [2] Moore, K. E., Bobba, J., Moravan, M. J., Hill, M. D. 分抑制できたことを確認した. また,(P2) におい and Wood, D. A.: LogTM: Log-based Transactional てContention に注目すると, Stall サイクルが大幅 Memory, Proc. 12th Int’l Symp. on High-Performance に削減された.これは,定義されたTx 中に存在す Computer Architecture, pp. 254–265(2006).
© Copyright 2025 ExpyDoc