TECHNICAL REPORT ARCHIVE

A Conservative Data Flow Algorithm for Detecting All Pairs of Statements that May Happen in Parallel for Rendezvous-Based Concurrent Programs
TR-CIS-2001-02
Gleb Naumovich, George S. Avrunin
pdf version of this paper
Abstract:
Information about which pairs of statements in a concurrent program can execute in parallel is important for optimizing and debugging programs, for detecting anomalies, and for improving the accuracy of data flow analysis. In this paper, we describe a new data flow algorithm that finds a conservative approximation of the set of all such pairs for programs that use the rendezvous model of communication. We have carried out a comparison of the precision of our algorithm and that of the most precise of the earlier approaches, Masticola and Ryder´s non-concurrency analysis [15], using a sample of 159 concurrent Ada programs that includes the collection assembled by Masticola and Ryder. For these examples, our algorithm was almost always more precise than non-concurrency analysis, in the sense that the set of pairs identified by our algorithm as possibly happening in parallel is a proper subset of the set identified by nonconcurrency analysis. In 140 cases, we were able to use an exponential-time reachability analysis to compute the set of pairs of statements that may happen in parallel. For these cases, there were a total of only 25 pairs identified by our polynomial-time algorithm that were not identified by the reachability analysis.
Back to previous page
|