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 条
  • [1] DEBUGGING TECHNIQUES FOR PARALLEL PROGRAMS
    LEU, E
    SCHIPER, A
    [J]. TSI-TECHNIQUE ET SCIENCE INFORMATIQUES, 1991, 10 (01): : 5 - 21
  • [2] Using sequential debugging techniques with massively parallel programs
    Schaubschlaeger, Christian
    Kranzlmueller, Dieter
    Volkert, Jens
    [J]. COMPUTATIONAL SCIENCE - ICCS 2006, PT 2, PROCEEDINGS, 2006, 3992 : 557 - 564
  • [3] DEBUGGING PARALLEL PROGRAMS IN PARALLEL
    RUBIN, RV
    [J]. SIGPLAN NOTICES, 1989, 24 (01): : 216 - 225
  • [4] EVENT SYNCHRONIZATION ANALYSIS FOR DEBUGGING PARALLEL PROGRAMS
    EMRATH, PA
    GHOSH, S
    PADUA, DA
    [J]. PROCEEDINGS : SUPERCOMPUTING 89, 1989, : 580 - 588
  • [5] DEBUGGING PARALLEL STRAND PROGRAMS
    GITTINS, M
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1991, 569 : 1 - 16
  • [6] DEBUGGING PARALLEL PROGRAMS WITH INSTANT REPLAY
    LEBLANC, TJ
    MELLORCRUMMEY, JM
    [J]. IEEE TRANSACTIONS ON COMPUTERS, 1987, 36 (04) : 471 - 482
  • [7] DEBUGGING PARALLEL PROGRAMS USING SOUND
    FRANCIONI, JM
    ALBRIGHT, L
    JACKSON, JA
    [J]. SIGPLAN NOTICES, 1991, 26 (12): : 68 - 75
  • [8] A TOOLKIT FOR DEBUGGING PARALLEL LISP PROGRAMS
    ILMBERGER, H
    THURMEL, S
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1991, 505 : 406 - 422
  • [9] A MECHANISM FOR EFFICIENT DEBUGGING OF PARALLEL PROGRAMS
    MILLER, BP
    CHOI, JD
    [J]. SIGPLAN NOTICES, 1989, 24 (01): : 141 - 150
  • [10] Reversible Imperative Parallel Programs and Debugging
    Hoey, James
    Ulidowski, Irek
    [J]. REVERSIBLE COMPUTATION (RC 2019), 2019, 11497 : 108 - 127