巻き戻し実行をサポートする並列プログラムデバッガ  [in Japanese] A Parallel Program Debugger Supporting Reverse Execution  [in Japanese]

Access this Article

Search this Article

Author(s)

Abstract

巻き戻し実行(あるいは逆実行)は,強力なプログラムデバッギング手法である.しかし,これを並列プログラムのデバッギングに適用するためには実行の非決定性という,並列プログラム特有の問題を解決する必要がある.並列プログラムでは一般に,複数回同じプログラムを実行したとき,それらの実行で同じ振舞いをすることが保証されない.そのため,巻き戻し実行を利用してデバッギングを行う場合,バグの真の原因の追跡に必要なすべての実行状態を保存しておく必要がある.このことは,再現性の低いバグを追っている場合に,特に問題になる.いつどのような条件で出現するか分からないバグを待って,コストの高いチェックポインティングを続けなくてはならないからである.そこで我々は巻き戻し実行に再演手法を組み合わせることで欠点を補う,並列プログラムのデバッギングモデルを提案する.我々は並列言語Orgelに対して巻き戻し実行機構を実装し,巻き戻し実行を利用可能な並列デバッガOrderを開発した.本論文では,提案手法およびOrderの実装と評価について述べる.それによって,提案手法を用いて実装したOrderシステムが強力で使いやすいデバッギング環境を提供できること,現実的なコストで動作することを示す.Reverse execution is a powerful technique of debugging. Some serious problems arise, however, in applying it to parallel programs because of its indeterministic nature. Since a parallel program's behavior can be different from run to run, entire information for locating the bug must be checkpointed in single execution. It causes, in most cases, the users to collect much larger set of information than really needed. It is particularly serious when locating the inreproductive bugs. The users have to run the program repeatedly with costly checkpointing operation until the bug appears. Therefore we propose a debugging model for parallel programs based on checkpointing/rollbacking combined with replay method to overcome these weak points. We applied it to a parallel programming language Orgel, and developed a debugger supporting execution rollback for Orgel programs. Our mechanism works at practical cost in execution, and can provide useful and powerful functions to the parallel debuggers which justify some extra cost.

Journal

  • 情報処理学会論文誌コンピューティングシステム(ACS)

    情報処理学会論文誌コンピューティングシステム(ACS) 45(SIG03(ACS5)), 109-121, 2004-03-15

    情報処理学会

References:  10

Cited by:  1

Codes

  • NII Article ID (NAID)
    10012691558
  • NII NACSIS-CAT ID (NCID)
    AA11833852
  • Text Lang
    JPN
  • Article Type
    Journal Article
  • ISSN
    1882-7829
  • NDL Article ID
    6901976
  • NDL Call No.
    Z74-C192
  • Data Source
    CJP  CJPref  NDL  IPSJ 
Page Top