TECHNIQUES FOR DEBUGGING PARALLEL PROGRAMS WITH FLOWBACK ANALYSIS

被引:54
|
作者
CHOI, JD [1 ]
MILLER, BP [1 ]
NETZER, RHB [1 ]
机构
[1] UNIV WISCONSIN,DEPT COMP SCI,MADISON,WI 53706
关键词
DESIGN; LANGUAGES; MEASUREMENT;
D O I
10.1145/115372.115324
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Flowback analysis is a powerful technique for debugging programs. It allows the programmer to examine dynamic dependences in a program's execution history without having to reexecute the program. The goal is to present to the programmer a graphical view of the dynamic program dependences. We are building a system, called PPD, that performs flowback analysis while keeping the execution time overhead low. We also extend the semantics of flowback analysis to parallel programs. This paper describes details of the graphs and algorithms needed to implement efficient flowback analysis for parallel programs. Execution-time overhead is kept low by recording only a small amount of trace during a program's execution. We use semantic analysis and a technique called incremental tracing to keep the time and space overhead low. As part of the semantic analysis, PPD uses a static program dependence graph structure that reduces the amount of work done at compile time and takes advantage of the dynamic information produced during execution time. Parallel programs have been accommodated in two ways. First, the flowback dependences can span process boundaries; that is, the most recent modification to a variable might be traced to a different process than that one that contains the current reference. The static dynamic program dependence graphs of the individual processes are tied together with synchronization and data dependence information to form complete graphs that represent the entire program. Second, our algorithms will detect potential data-race conditions in the access to shared variables. The programmer can be directed to the cause of the race condition. PPD is currently being implemented for the C programming language on a Sequent Symmetry shared-memory multiprocessor.
引用
收藏
页码:491 / 530
页数:40
相关论文
共 50 条
  • [41] Debugging real-world data-parallel programs with SPiDER
    Fahringer, T
    Sowa-Pieklo, K
    [J]. FUTURE GENERATION COMPUTER SYSTEMS-THE INTERNATIONAL JOURNAL OF ESCIENCE, 2002, 18 (06): : 779 - 788
  • [42] Systematic debugging of parallel programs in DIWIDE based on collective breakpoints and macrosteps
    Kacsuk, P
    Lovas, R
    Kovács, J
    [J]. EURO-PAR'99: PARALLEL PROCESSING, 1999, 1685 : 90 - 97
  • [43] OPTIMAL TRACING AND REPLAY FOR DEBUGGING MESSAGE-PASSING PARALLEL PROGRAMS
    NETZER, RHB
    MILLER, BP
    [J]. JOURNAL OF SUPERCOMPUTING, 1995, 8 (04): : 371 - 388
  • [44] A SURVEY OF VERIFICATION TECHNIQUES FOR PARALLEL PROGRAMS
    BARRINGER, H
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1985, 191 : 1 - 115
  • [45] Correctness debugging of message passing programs using model verification techniques
    Lovas, Robert
    Kacsuk, Peter
    [J]. RECENT ADVANCES IN PARALLEL VIRTUAL MACHINE AND MESSAGE PASSING INTERFACE, 2007, 4757 : 335 - 343
  • [46] Shortcut replay:: A replay technique for debugging long-running parallel programs
    Thoai, N
    Kranzlmüller, D
    Volkert, J
    [J]. ADVANCES IN COMPUTING SCIENCE-ASIAN 2002: INTERNET-COMPUTING AND MODELING, GRID COMPUTING, PEER-TO-PEER COMPUTING, AND CLUSTER COMPUTING, 2002, 2550 : 34 - 46
  • [47] DEBUGGING TECHNIQUES
    LAUESEN, S
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 1979, 9 (01): : 51 - 63
  • [48] UNDERSTANDING AND DEBUGGING PROGRAMS
    LUKEY, FJ
    [J]. INTERNATIONAL JOURNAL OF MAN-MACHINE STUDIES, 1980, 12 (02): : 189 - 202
  • [49] Debugging DVM Programs
    V. A. Krukov
    R. V. Udovichenko
    [J]. Programming and Computer Software, 2001, 27 : 123 - 129
  • [50] Debugging functional programs
    Stumptner, M
    Wotawa, F
    [J]. IJCAI-99: PROCEEDINGS OF THE SIXTEENTH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE, VOLS 1 & 2, 1999, : 1074 - 1079