Results 1  10
of
22
Counting Solutions to Linear and Nonlinear Constraints through Ehrhart Polynomials: Applications to Analyze and Transform Scientific Programs
, 1996
"... In order to produce efficient parallel programs, optimizing compilers need to include an analysis of the initial sequential code. When analyzing loops with affine loop bounds, many computations are relevant to the same general problem: counting the number of integer solutions of selected free variab ..."
Abstract

Cited by 107 (0 self)
 Add to MetaCart
In order to produce efficient parallel programs, optimizing compilers need to include an analysis of the initial sequential code. When analyzing loops with affine loop bounds, many computations are relevant to the same general problem: counting the number of integer solutions of selected free variables in a set of linear and/or nonlinear parameterized constraints. For example, computing the number of flops executed by a loop, of memory locations touched by a loop, of cache lines touched by a loop, or of array elements that need to be transmitted from a processor to another during the execution of a loop, is useful to determine if a loop is load balanced, evaluate message traffic and allocate message buffers. The objective of the presented method is to evaluate symbolically, in terms of symbolic constants (the size parameters) , this number of integer solutions. By modeling the considered counting problem as a union of rational convex polytopes, the number of included integer points is ...
Counting Solutions to Presburger Formulas: How and Why
, 1994
"... We describe methods that are able to count the number of integer solutions to selected free variables of a Presburger formula, or sum a polynomial over all integer solutions of selected free variables of a Presburger formula. This answer is given symbolically, in terms of symbolic constants (the rem ..."
Abstract

Cited by 89 (2 self)
 Add to MetaCart
(Show Context)
We describe methods that are able to count the number of integer solutions to selected free variables of a Presburger formula, or sum a polynomial over all integer solutions of selected free variables of a Presburger formula. This answer is given symbolically, in terms of symbolic constants (the remaining free variables in the Presburger formula). For example...
Parametric Analysis of Polyhedral Iteration Spaces
 JOURNAL OF VLSI SIGNAL PROCESSING
, 1998
"... In the area of automatic parallelization of programs, analyzing and transforming loop nests with parametric affine loop bounds requires fundamental mathematical results. The most common geometrical model of iteration spaces, called the polytope model, is based on mathematics dealing with convex and ..."
Abstract

Cited by 85 (14 self)
 Add to MetaCart
In the area of automatic parallelization of programs, analyzing and transforming loop nests with parametric affine loop bounds requires fundamental mathematical results. The most common geometrical model of iteration spaces, called the polytope model, is based on mathematics dealing with convex and discrete geometry, linear programming, combinatorics and geometry of numbers. In this paper, we present automatic methods for computing the parametric vertices and the Ehrhart polynomial, i.e. a parametric expression of the number of integer points, of a polytope defined by a set of parametric linear constraints. These methods have many applications in analysis and transformations of nested loop programs. The paper is illustrated with exact symbolic array dataflow analysis, estimation of execution time, and with the computation of the maximum available parallelism of given loop nests.
Efficient Symbolic Analysis for Parallelizing Compilers and Performance Estimators
, 1998
"... . Symbolic analysis is of paramount importance for parallelizing compilers and performance estimators to examine symbolic expressions with program unknowns such as machine and problem sizes and to solve queries based on systems of constraints (equalities and inequalities) . This paper describes nove ..."
Abstract

Cited by 31 (7 self)
 Add to MetaCart
(Show Context)
. Symbolic analysis is of paramount importance for parallelizing compilers and performance estimators to examine symbolic expressions with program unknowns such as machine and problem sizes and to solve queries based on systems of constraints (equalities and inequalities) . This paper describes novel techniques for counting the number of solutions to a system of constraints, simplifying systems of constraints, computing lower and upper bounds of symbolic expressions, and determining the relationship between symbolic expressions. All techniques target wide classes of linear and nonlinear symbolic expressions and systems of constraints. Our techniques have been implemented and are used as part of a parallelizing compiler and a performance estimator to support analysis and optimization of parallel programs. Various examples and experiments demonstrate the effectiveness of our symbolic analysis techniques. Keywords: Program analysis, symbolic expressions, comparing symbolic expressions, ...
Probabilistic Memory Disambiguation and its Application to Data Speculation
, 1996
"... Memory references in an instruction stream often pose a challenge for performance improvements on highperformance microprocessors. One common scenario is that a load and a sequence of dependent instructions are on a critical path, but scheduling these instructions early to reduce the critical ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
Memory references in an instruction stream often pose a challenge for performance improvements on highperformance microprocessors. One common scenario is that a load and a sequence of dependent instructions are on a critical path, but scheduling these instructions early to reduce the critical path length is often hindered by a preceding store, which may write to the same memory location as the load. A traditional memory disambiguation approach employed by a compiler may break such a potential dependence only if it can successfully disambiguate the memory locations referenced by the store and the load. This conservative treatment in memory disambiguation is greatly alleviated by a recent architectural support for data speculation. With such a support, a load can be freely moved up across an aliasing store, and if the alias does occur, it is detected by a run time check and a recovery code will be invoked to reexecute the speculated instructions. Data speculation opens...
Abstract Domains of Affine Relations
"... This paper considers some known abstract domains for affinerelation analysis (ARA), along with several variants, and studies how they relate to each other. We show that the abstract domains of MüllerOlm/Seidl (MOS) and King/Søndergaard (KS) are, in general, incomparable, but give sound interconve ..."
Abstract

Cited by 13 (8 self)
 Add to MetaCart
(Show Context)
This paper considers some known abstract domains for affinerelation analysis (ARA), along with several variants, and studies how they relate to each other. We show that the abstract domains of MüllerOlm/Seidl (MOS) and King/Søndergaard (KS) are, in general, incomparable, but give sound interconversion methods. We also show that the methods of King and Søndergaard can be applied without bitblasting—while still using a bitprecise concrete semantics.
Deriving Formulae to Count Solutions to Parameterized Linear Systems using Ehrhart Polynomials: Applications to the Analysis of NestedLoop Programs
, 1997
"... Optimizing parallel compilers need to be able to analyze nested loop programs with parametric affine loop bounds, in order to derive efficient parallel programs. The iteration spaces of nested loop programs can be modeled by polyhedra and systems of linear constraints. Using this model, important pr ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
Optimizing parallel compilers need to be able to analyze nested loop programs with parametric affine loop bounds, in order to derive efficient parallel programs. The iteration spaces of nested loop programs can be modeled by polyhedra and systems of linear constraints. Using this model, important program analyses such as computing the number of flops executed by a loop, computing the number of memory locations or cache lines touched by a loop, and computing the amount of processor to processor communication needed during the execution of a loop  all reduce to the same mathematical problem: finding the formula for number of integer solutions to a system of parameterized linear constraints, as a function of the parameters. In this paper, we present a method for deriving a closedform symbolic formula for the number of integer points contained in a polyhedral region in terms of size parameters. If the set of integer points to be counted lies inside a union of rational convex polytopes, ...
Toward Symbolic Performance Prediction of Parallel Programs
 In IEEE Proc. of the 1996 International Parallel Processing Symposium
, 1996
"... Critical analyses in performance estimators for parallel programs require an algorithm that count the number of integer solutions to a set of inequalities. Most current performance estimators are restricted to linear inequalities for this analysis. In this paper we describe a symbolic algorithm whic ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
(Show Context)
Critical analyses in performance estimators for parallel programs require an algorithm that count the number of integer solutions to a set of inequalities. Most current performance estimators are restricted to linear inequalities for this analysis. In this paper we describe a symbolic algorithm which can estimate the number of integer solutions to a set of both linear and nonlinear inequalities. The result is either an integer value or a symbolic expression depending on whether the inequalities contain nonloop variables. We have implemented this algorithm and use it as part of P 3 T , a performance estimator for data parallel programs. We demonstrate the usefulness of this algorithm by predicting the work load of all processors for a parallel program and compare it to measurements taken on an iPSC/860 hypercube system. 1. Introduction Counting the number of integer solutions to a set of inequalities has been shown to be a key issue in performance analysis of parallel programs. Nu...
Algorithms for weighted counting over parametric polytopes: A survey and a practical comparison
, 2008
"... The polytope model is widely used in compiler analysis for representing a certain class of programs. Many counting problems that occur in the analysis of such programs can be solved by counting the number of integer points in a parametric polytope. In other counting problems, polynomial weights ar ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
(Show Context)
The polytope model is widely used in compiler analysis for representing a certain class of programs. Many counting problems that occur in the analysis of such programs can be solved by counting the number of integer points in a parametric polytope. In other counting problems, polynomial weights are assigned to the integer points of a parametric polytope and the objective is to find the sum of these weights over all integer points. This paper briefly surveys a number of algorithms for solving such problems, extending them where needed and evaluating them on a set of realistic and constructed examples from compiler analysis and beyond. The paper also serves to document some of the algorithms implemented in the freely available barvinok library.