Debugging and Analysis of Large-Scale Parallel Programs

Abstract

One of the most serious problems in the development cycle of large- scale parallel programs is the lack of tools for debugging and performance analysis. Parallel programs are more difficult to analyze than their sequential counterparts for several reasons. First, race conditions in parallel programs can cause non-deterministic behavior, which reduces the effectiveness of traditional cyclic debugging techniques. Second, invasive, interactive analysis can distort a parallel program's execution beyond recognition. Finally, comprehensive analysis of a parallel program's execution requires collection, management, and presentation of an enormous amount of information. This dissertation addresses the problem of debugging and analysis of large-scale parallel programs executing on shared-memory multiprocessors. It proposes a methodology for top-down analysis of parallel program executions that replaces previous ad-hoc approaches. To support this methodology, a formal model for shared-memory communication among processes in a parallel program is developed. It is shown how synchronization traces based on this abstract model can be used to create indistinguishable executions that form the basis for debugging. This result is used to develop a practical technique for tracing parallel program executions on shared-memory parallel processors so that their executions can be repeated deterministically on demand. (kr)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1989
Accession Number
ADA221678

Entities

People

  • John M. Mellor-crummey

Organizations

  • University of Rochester

Tags

DTIC Thesaurus Topics

  • Application Software
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Construction
  • Debugging
  • Information Science
  • Instruction Set Architecture
  • Lisp Programming Language
  • Operating Systems
  • Parallel Computing
  • Parallel Processing
  • Parallel Processors
  • Programming Languages
  • Software Development
  • Trees (Data Structures)

Fields of Study

  • Computer science
  • Engineering

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Computer Science.
  • Distributed Systems and Data Platform Development