Off-campus UMass Amherst users: To download dissertations, please use the following link to log into our proxy server with your UMass Amherst user name and password.

Non-UMass Amherst users, please click the view more button below to purchase a copy of this dissertation from Proquest.

(Some titles may also be available free of charge in our Open Access Dissertation Collection, so please check there first.)

Debugging parallel programs using abstract visualizations

Alfred Andrew Hough, University of Massachusetts Amherst

Abstract

This dissertation addresses problems in the visualization and debugging of asynchronous, highly parallel programs. Its primary contributions are: (1) a technique that uses abstraction to improve the visualization of parallel program behavior, and (2) an improved method of describing behavior at an abstract level. Highly parallel, asynchronous, MIMD programs are difficult to debug. Traditional state-based, break/examine debugging techniques are successful in the sequential domain but parallel systems are not easily understood in terms of state transitions: multiple processes result in potentially overwhelming state spaces and asynchrony makes it difficult to predict transitions. Instead, highly parallel programs are best understood in terms of the interprocess flow of data and control. For code running on nonshared memory architectures, this flow is often very structured: nearly homogeneous, low grain processes communicating frequently across regular networks result in logically regular patterns of communication. In order to debug highly parallel programs, we believe that the programmer must be able to determine the extent to which these intended logical patterns of communication actually occur during execution. Simple visualizations of parallel programs are not readily understandable because the independent asynchronous execution of processes can cause logically concurrent actions to be displayed at widely distant times and logically ordered actions to be displayed concurrently. Our approach is to construct abstract animations, in which user-defined, logically related behaviors are seen as distinct visual units. In these abstract animations the behavior of the program is easier to understand and bugs are easier to find. Abstract animations rely on the ability of the user to describe abstract behavior. Current languages for describing abstract behavior are not well suited for describing errorful behavior in highly parallel programs. We introduce a new language for describing abstract behavior that more precisely specifies the behavior of parallel programs.

Subject Area

Computer science

Recommended Citation

Hough, Alfred Andrew, "Debugging parallel programs using abstract visualizations" (1991). Doctoral Dissertations Available from Proquest. AAI9207412.
https://scholarworks.umass.edu/dissertations/AAI9207412

Share

COinS