著者
飯田 凌大 津邑 公暁
雑誌
研究報告システム・アーキテクチャ(ARC) (ISSN:21888574)
巻号頁・発行日
vol.2018-ARC-232, no.7, pp.1-9, 2018-07-23

トランザクショナルメモリ (TM) は,クリティカルセクションを含む一連の命令列をトランザクションとして定義し,これを投機的に並列実行することで,粗粒度ロックと同程度の記述性と,細粒度ロックと同等以上の性能とを両立しうるパラダイムとして期待されている.この TM をソフトウェア上に実装したソフトウェアトランザクショナルメモリ (STM) では一般に,論理タイムスタンプを用いて共有変数の一貫性を検証しているが,この手法はスケーラビリティに欠けるという問題がある.また,他の一貫性検証手法として共有変数別ごとのバージョン情報を用いるものがある.この手法は論理タイムスタンプを用いる手法に比べスケーラビリティに優れるが,トランザクション内で読み出す共有変数の個数の二乗に比例するオーバヘッドが発生するという問題がある.本稿では,実行時のスレッド数とトランザクション内で読み出す共有変数の個数とを基準とし,一貫性検証手法を適切なものへ動的に切り替えることで,STM のオーバヘッド抑制とスケーラビリティ向上との両立を目指す.提案手法を実装し,評価を行った結果,最大 27.0%,平均 15.3% の速度向上を達成した.