Skip to main content
QUICK REVIEW

[論文レビュー] Non-intrusive on-the-fly data race detection using execution replay

Michiel Ronsse, Koenraad De Bosschere|ArXiv.org|Nov 6, 2000
Parallel Computing and Optimization Techniques参考文献 23被引用数 24
ひとこと要約

本稿では、実行再現とスヌーピング行列時計を用いたマルチレベルビットマップを活用することで、メモリオーバーヘッドを最小限に抑える、非侵襲的でオンザフライなデータレース検出システムRecPlayを提示する。継続的なトレースを性能劣化なしに可能にすることで、ヘイゼンバグを排除し、コード変更や再コンパイルなしにSPLASH-2やAthapascanといった実アプリケーションにおいて本物のデータレースを検出可能となる。

ABSTRACT

This paper presents a practical solution for detecting data races in parallel programs. The solution consists of a combination of execution replay (RecPlay) with automatic on-the-fly data race detection. This combination enables us to perform the data race detection on an unaltered execution (almost no probe effect). Furthermore, the usage of multilevel bitmaps and snooped matrix clocks limits the amount of memory used. As the record phase of RecPlay is highly efficient, there is no need to switch it off, hereby eliminating the possibility of Heisenbugs because tracing can be left on all the time.

研究の動機と目的

  • コード変更やプローブ効果を導入せずに並列プログラムにおけるデータレース検出の課題に対処すること。
  • プログラム実行中における継続的・非侵襲的トレーシングを可能にすることで、ヘイゼンバグを排除すること。
  • マルチレベルビットマップとスヌーピング行列時計を用いることで、データレース検出におけるメモリオーバーヘッドを低減すること。
  • 共有メモリシステム上での実世界の並列アプリケーションにおけるデータレース検出のための実用的でスケーラブルなソリューションを提供すること。
  • 実稼働環境におけるオンザフライデータレース検出のための実行再現の有効性を示すこと。

提案手法

  • アプリケーションを変更せずに実行を記録・再現できる実行再現(RecPlay)を用いる。
  • メモリアクセスパターンを効率的に表現し、ストレージオーバーヘッドを低減するためのマルチレベルビットマップを採用する。
  • スレッド間のメモリアクセスの因果関係を効率的に追跡するため、スヌーピング行列時計を適用する。
  • 再現中にアクセス順序と共有メモリの競合を分析することで、オンザフライでのデータレース検出を実現する。
  • ラムポートの論理時刻モデルを活用し、分散実行トレースにおけるイベントの正しい順序付けを保証する。
  • バイナリレベルで動作するため、再コンパイルや再リンクを回避し、アプリケーションに対して完全に透明である。

実験結果

リサーチクエスチョン

  • RQ1コード変更なしで、性能劣化を最小限に抑えてデータレース検出が可能か?
  • RQ2正確性を維持したまま、データレース検出におけるメモリオーバーヘッドをどのように低減できるか?
  • RQ3プローブ効果やヘイゼンバグを引き起こさずに、継続的トレーシングを維持できるか?
  • RQ4実行再現は、実際の並列アプリケーションにおけるオンザフライデータレース検出にどの程度有効か?
  • RQ5再現と効率的なクロック機構の組み合わせにより、複雑なベンチマークで本物のデータレースを検出できるか?

主な発見

  • RecPlayはSPLASH-2ベンチマークスイートおよびAthapascan並列プログラミングシステムにおいて、本物のデータレースを正常に検出できた。
  • 再コンパイルや再リンクを一切行わず、アプリケーションに対して完全に透明に動作した。
  • マルチレベルビットマップとスヌーピング行列時計の活用により、トレース記録および再現時のメモリ使用量が顕著に削減された。
  • 記録フェーズの高い効率性のおかげで継続的トレーシングが可能となり、トレースを無効化する必要がなく、ヘイゼンバグの発生を防いだ。
  • プローブ効果を最小限に抑え、オンザフライ検出を実現したため、生産環境に近い環境でも信頼性の高い検出が可能となった。
  • 本稿の手法は、意図的な同期レースと意図しないレース条件を効果的に区別でき、主に不測の競合状態に焦点を当てた検出を実現した。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。