著者
山田遼平 橋本高志良 津邑公暁
雑誌
研究報告計算機アーキテクチャ(ARC)
巻号頁・発行日
vol.2014-ARC-211, no.1, pp.1-8, 2014-07-21

マルチコア環境では,共有変数へのアクセス調停のためにロックを用いることが一般的である.しかし,ロックには並列性の低下やデッドロックの発生などの問題があるため,これに代わる並行性制御機構としてトランザクショナルメモリ (TM) が提案されている.この機構のハードウェア実装であるハードウェア・トランザクショナルメモリ (HTM) では,アクセス競合が発生しない限りトランザクションが投機実行される.HTM では投機実行が失敗した場合,再び競合が発生することをを防ぐため,トランザクションの再実行までに待機時間を設定するアルゴリズムが採用されている.しかし,既存の待機アルゴリズムでは適切な待機時間を設定できていないため,再び競合が発生して投機実行の失敗が繰り返されることで,HTM の性能が著しく低下してしまう場合がある.本稿では,この待機アルゴリズムを改良し,トランザクションの実行状況に応じた待機処理を行うことで HTM を高速化する手法を提案する.シミュレーションによる評価の結果,提案手法により最大 59.9%,16 スレッドで平均 11.2%の高速化を確認した.
著者
間下 恵介 三宅 翔 山田 遼平 津邑 公暁
雑誌
研究報告システム・アーキテクチャ(ARC) (ISSN:21888574)
巻号頁・発行日
vol.2015-ARC-215, no.13, pp.1-10, 2015-05-19

マルチコア環境では,一般的にロックを用いて共有変数へのアクセスを調停する.しかし,ロックには並列性の低下やデッドロックの発生などの問題があるため,これを補完する並行性制御機構としてトランザクショナルメモリが提案されている.この機構をハードウェア上で実現したハードウェアトランザクショナルメモリではアクセス競合が発生しない限りトランザクションが投機的に実行される.しかし,共有変数に対する複合操作が行われるようなトランザクションが並行実行された場合,その際に発生するストールが無駄となる場合がある.そこで本稿では,このような複合操作を検出し,それに関与するトランザクションを排他実行する手法に加え,同一の共有変数に対してそれ以降変更が行われないと判断した時点で,他スレッドによる投機的アクセスを許可する手法を提案する.シミュレーションによる評価の結果,提案手法により 16 スレッド実行時において最大 67.2%,平均 13.9% の性能向上を達成した.
著者
橋本高志良 井出源基 山田遼平 堀場匠一朗 津邑公暁
雑誌
研究報告計算機アーキテクチャ(ARC)
巻号頁・発行日
vol.2014-ARC-208, no.22, pp.1-8, 2014-01-16

マルチコア環境では,一般的にロックを用いて共有変数へのアクセスを調停する.しかし,ロックには並列性の低下やデッドロックの発生などの問題があるため,これに代わる並行性制御機構としてトランザクショナルメモリが提案されている.この機構のハードウェア実装であるハードウェアトランザクショナルメモリ (HTM) では,アクセス競合が発生しない限りトランザクションが投機的に実行される.しかし,共有変数に対する複合操作が行われるようなトランザクションが並行実行された場合,その際に発生するストールが完全に無駄となる場合がある.本稿では,このような同一の共有変数に対する Read→Write の順序でのアクセスを検出し,それに関与するトランザクションを排他実行することで,HTM の全体性能を向上させる手法を提案する.シミュレーションによる評価の結果,提案手法により 16 スレッド実行時において最大 72.2%,平均 17.5%の性能向上を達成した.
著者
山田遼平 堀場匠一朗 井出源基 橋本高志良 津邑公暁
雑誌
研究報告計算機アーキテクチャ(ARC)
巻号頁・発行日
vol.2014-ARC-208, no.23, pp.1-9, 2014-01-16

マルチコア環境における並列プログラミングでは,一般的にロックを用いて共有リソースへのアクセスを調停する.しかし,ロックには並列性の低下やデッドロックの発生などの問題があるため,これに代わる並行性制御機構としてトランザクショナルメモリ (TM) が提案されている.これをハードウェアで実現する HTM では,一般的にアクセス競合が発生した場合にトランザクションの実行を停止する必要があるため,一時的に並列度が低下してしまう.そこで本稿では,競合が発生したとしてもトランザクションの実行を停止させず,競合相手がコミットまで到達すると仮定して投機的に実行を継続することで並列度を増大させる手法を提案する.評価の結果,既存手法に比べて,最大 9.63%,16 スレッドで平均 1.74% の実行サイクル数の削減を確認した.