The automatic transformation of sequential programs for efficient execution on parallel computers involves a number of analyses and restructurings of the input. Some of these analyses are based on computing array sections, a compact description of a range of array elements. Array sections describe the set of array elements that are either read or written by program statements. These sections can be compactly represented using shape descriptors such as regular sections, simple sections, or generalized convex regions. However, binary operations such as Union performed on these representations do not satisfy a straightforward closure property, e.g., if the operands to Union are convex, the result may be nonconvex. Approximations are resorted to in order to satisfy this closure property. These approximations introduce imprecision in the analyses and, furthermore, the imprecisions resulting from successive operations have a cumulative effect. Delayed merging is a technique suggested and used in some of the existing analyses to minimize the effects of approximation. However, this technique does not guarantee an exact solution in a general setting. This article presents a generalized technique to precisely compute Union which can overcome these imprecisions.
[1]
Ken Kennedy,et al.
Interactive parallelization of numerical scientific programs
,
1989
.
[2]
Y. N. Srikant,et al.
An Automatic Parallelization Framework for Multicomputers
,
1994,
Comput. Lang..
[3]
Manish Gupta,et al.
Demonstration of Automatic Data Partitioning Techniques for Parallelizing Compilers on Multicomputers
,
1992,
IEEE Trans. Parallel Distributed Syst..
[4]
Samuel P. Midkiff,et al.
An Empirical Study of Precise Interprocedural Array Analysis
,
1994,
Sci. Program..
[5]
Bernard Chazelle.
Triangulating a simple polygon in linear time
,
1991,
Discret. Comput. Geom..
[6]
Ken Kennedy,et al.
Analysis of interprocedural side effects in a parallel programming environment
,
1988,
J. Parallel Distributed Comput..
[7]
Susan J. Eggers,et al.
Reducing false sharing on shared memory multiprocessors through compile time data transformations
,
1995,
PPOPP '95.
[8]
Paul Feautrier,et al.
Direct parallelization of call statements
,
1986,
SIGPLAN '86.