Results 1  10
of
47
Some efficient solutions to the affine scheduling problem  Part I Onedimensional Time
, 1996
"... Programs and systems of recurrence equations may be represented as sets of actions which are to be executed subject to precedence constraints. In many cases, actions may be labelled by integral vectors in some iteration domain, and precedence constraints may be described by affine relations. A s ..."
Abstract

Cited by 264 (22 self)
 Add to MetaCart
Programs and systems of recurrence equations may be represented as sets of actions which are to be executed subject to precedence constraints. In many cases, actions may be labelled by integral vectors in some iteration domain, and precedence constraints may be described by affine relations. A schedule for such a program is a function which assigns an execution date to each action. Knowledge of such a schedule allows one to estimate the intrinsic degree of parallelism of the program and to compile a parallel version for multiprocessor architectures or systolic arrays. This paper deals with the problem of finding closed form schedules as affine or piecewise affine functions of the iteration vector. An efficient algorithm is presented which reduces the scheduling problem to a parametric linear program of small size, which can be readily solved by an efficient algorithm.
A Library for Doing Polyhedral Operations
, 1993
"... Polyhedra are geometric representations of linear systems of equations and inequalities. Since polyhedra are used to represent the iteration domains of nested loop programs, procedures for operating on polyhedra are useful for doing loop transformations and other program restructuring transformatio ..."
Abstract

Cited by 121 (13 self)
 Add to MetaCart
Polyhedra are geometric representations of linear systems of equations and inequalities. Since polyhedra are used to represent the iteration domains of nested loop programs, procedures for operating on polyhedra are useful for doing loop transformations and other program restructuring transformations which are needed in parallelizing compilers. Thus a need for a library of polyhedral operations has recently been recognized in the parallelizing compiler community. Polyhedra are also used in the definition of domains of variables in systems of affine recurrence equations (SARE). Alpha is a language which is based on the SARE formalism in which all variables are declared over finite unions of polyhedra. This report describes a library of polyhedral functions which was developed to support the Alpha language environment, and which is general enough to satisfy the needs of researchers doing parallelizing compilers. This report describes the data structures used to represent domains, gives...
Loop Parallelization in the Polytope Model
 CONCUR '93, Lecture Notes in Computer Science 715
, 1993
"... . During the course of the last decade, a mathematical model for the parallelization of FORloops has become increasingly popular. In this model, a (perfect) nest of r FORloops is represented by a convex polytope in Z r . The boundaries of each loop specify the extent of the polytope in a dis ..."
Abstract

Cited by 104 (26 self)
 Add to MetaCart
(Show Context)
. During the course of the last decade, a mathematical model for the parallelization of FORloops has become increasingly popular. In this model, a (perfect) nest of r FORloops is represented by a convex polytope in Z r . The boundaries of each loop specify the extent of the polytope in a distinct dimension. Various ways of slicing and segmenting the polytope yield a multitude of guaranteed correct mappings of the loops' operations in spacetime. These transformations have a very intuitive interpretation and can be easily quantified and automated due to their mathematical foundation in linear programming and linear algebra. With the recent availability of massively parallel computers, the idea of loop parallelization is gaining significance, since it promises execution speedups of orders of magnitude. The polytope model for loop parallelization has its origin in systolic design, but it applies in more general settings and methods based on it will become a part of futur...
Generation of Efficient Nested Loops from Polyhedra
 International Journal of Parallel Programming
, 2000
"... Automatic parallelization in the polyhedral model is based on affine transformations from an original computation domain (iteration space) to a target spacetime domain, often with a different transformation for each variable. Code generation is an often ignored step in this process that has a signi ..."
Abstract

Cited by 88 (4 self)
 Add to MetaCart
Automatic parallelization in the polyhedral model is based on affine transformations from an original computation domain (iteration space) to a target spacetime domain, often with a different transformation for each variable. Code generation is an often ignored step in this process that has a significant impact on the quality of the final code. It involves making a tradeoff between code size and control code simplification/optimization. Previous methods of doing code generation are based on loop splitting, however they have nonoptimal behavior when working on parameterized programs. We present a general parameterized method for code generation based on dual representation of polyhedra. Our algorithm uses a simple recursion on the dimensions of the domains, and enables fine control over the tradeoff between code size and control overhead.
Constructive Methods for Scheduling Uniform Loop Nests
 IEEE Transactions on Parallel and Distributed Systems
, 1994
"... This paper surveys scheduling techniques for loop nests with uniform dependences. First we introduce the hyperplane method and related variants. Then we extend it by using a different affine scheduling for each statement within the nest. In both cases we present a new, constructive and efficient met ..."
Abstract

Cited by 69 (3 self)
 Add to MetaCart
(Show Context)
This paper surveys scheduling techniques for loop nests with uniform dependences. First we introduce the hyperplane method and related variants. Then we extend it by using a different affine scheduling for each statement within the nest. In both cases we present a new, constructive and efficient method to determine optimal solutions, i.e. schedules whose total execution time is minimum. 1 Introduction Loop nests lie in the heart of supercompilersparallelizers for supercomputers. On one hand their importance in terms of applications is evident: in many scientific programs, the time spent in the execution of a small number of loops represents a large fraction of the total execution time, while the potential parallelism of these loops is very important. On the other hand, the regular and repetitive structure of loop nests greatly facilitates the use of dependence analysis techniques and of scheduling and allocation strategies. The general problem of finding the optimal scheduling for a ...
The ALPHA Language
 38330 MONTBONNOT ST MARTIN UNITE DE RECHERCHE INRIA ROCQUENCOURT, DOMAINE DE VOLUCEAU, ROCQUENCOURT, BP 105, 78153 LE CHESNAY CEDEX UNITE DE RECHERCHE INRIA SOPHIAANTIPOLIS, 2004 ROUTE DES LUCIOLES, BP 93, 06902 SOPHIAANTIPOLIS CEDEX EDITEUR INRIA, DOMA
, 1994
"... This report is a formal description of the Alpha language, as it is currently implemented. Alpha is a strongly typed, functional language which embodies the formalism of systems of affine recurrence equations. In this report, Alpha language constructs are described, and denotational and type sema ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
This report is a formal description of the Alpha language, as it is currently implemented. Alpha is a strongly typed, functional language which embodies the formalism of systems of affine recurrence equations. In this report, Alpha language constructs are described, and denotational and type semantics are given. The theorems which are the basis for doing transformations on an Alpha program are stated. And finally, the syntax and semantics of Alpha are given.
Memory Reuse Analysis in the Polyhedral Model
 Parallel Processing Letters
, 1996
"... In the context of developing a compiler for a Alpha, a functional dataparallel language based on systems of affine recurrence equations (SAREs), we address the problem of transforming scheduled singleassignment code to multiple assignment code. We show how the polyhedral model allows us to statical ..."
Abstract

Cited by 15 (1 self)
 Add to MetaCart
(Show Context)
In the context of developing a compiler for a Alpha, a functional dataparallel language based on systems of affine recurrence equations (SAREs), we address the problem of transforming scheduled singleassignment code to multiple assignment code. We show how the polyhedral model allows us to statically compute the lifetimes of program variables, and thus enables us to derive necessary and sufficient conditions for reusing memory. 1. Introduction The methodology of automatic systolic array synthesis from Systems of Affine Recurrence Equations (SAREs) has a close bearing on parallelizing compilers and on efficient implementation of functional languages. To study this relationship, we are currently developing a compiler for Alpha [9], a functional, data parallel language based on SAREs defined over polyhedral index domains. The language semantics directly lead to sequential code based on demand driven evaluation. However, the resulting context switches can be avoided if the program is tra...
Towards optimal multilevel tiling for stencil computations
 21st IEEE International Parallel and Distributed Processing Symposium (IPDPS
, 2007
"... Stencil computations form the performancecritical core of many applications. Tiling and parallelization are two important optimizations to speed up stencil computations. Many tiling and parallelization strategies are applicable to a given stencil computation. The best strategy depends not only on t ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
(Show Context)
Stencil computations form the performancecritical core of many applications. Tiling and parallelization are two important optimizations to speed up stencil computations. Many tiling and parallelization strategies are applicable to a given stencil computation. The best strategy depends not only on the combination of the two techniques, but also on many parameters: tile and loop sizes in each dimension; computationcommunication balance of the code; processor architecture; message startup costs; etc. The best choices can only be determined through designspace exploration, which is extremely tedious and error prone to do via exhaustive experimentation. We characterize the space of multilevel tilings and parallelizations for 2D/3D GaussSiedel stencil computation. A systematic exploration of a part of this space enabled us to derive a design which is up to a factor of two faster than the standard implementation. 1.
AffinebyStatement Scheduling of Uniform Loop Nests over Parametric Domains
 J. Parallel and Distributed Computing
, 1993
"... this report we deal with affinebystatement scheduling, a highlevel technique for the parallelization of loop nests with uniform dependences. Affineby statement scheduling can be viewed as a natural extension of Lamport's hyperplane method [4], which has been proposed by many authors, includ ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
this report we deal with affinebystatement scheduling, a highlevel technique for the parallelization of loop nests with uniform dependences. Affineby statement scheduling can be viewed as a natural extension of Lamport's hyperplane method [4], which has been proposed by many authors, including Rao [10], Quinton [7] and Rajopadhye [9]. For the sake of selfcompleteness, we briefly review affinebystatement scheduling in the next section. Given a loop nest, a method for determining the best affinebystatement scheduling has been proposed by Darte and Robert [3]. The underlying idea is to use the duality theorem of linear programming and to solve an optimization problem, e.g. via the simplex method, to find the optimal parameters. Although constructive, the method in [3] suffers from several drawbacks. Roughly speaking, solving the optimization problem is very costly, since it depends upon the total number of dependences between statements. Even more, for parametric computation domains (think of a matrixmatrix product of size N , where N is the parameter), the solution is only possible at
Scheduling Uniform Loop Nests
 In Proceedings of ISMN International Conference on Parallel and Distributed Computer Systems
, 1992
"... This paper surveys scheduling techniques for uniform loop nests. First we introduce the hyperplane method and related variants. Then we extend it by using a different affine scheduling for each statement within the nest. In both cases we present a new, constructive and efficient method to determine ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
(Show Context)
This paper surveys scheduling techniques for uniform loop nests. First we introduce the hyperplane method and related variants. Then we extend it by using a different affine scheduling for each statement within the nest. In both cases we present a new, constructive and efficient method to determine optimal solutions. 1 Introduction Loop nests lie in the heart of supercompilersparallelizers for supercomputers. On one hand their importance in terms of applications is evident: in many scientific programs, the time spent in the execution of a couple of loops represents a large fraction of the total execution time, while the potential parallelism of these loops is often very important. On the other hand, the regular and repetitive structure of loop nests greatly facilitates the use of dependence analysis techniques and of scheduling and allocation strategies. The general problem of finding the optimal scheduling for a task system on a parallel machine is NPhard (due to the communications...