Results 1  10
of
15
Fuzzy Array Dataflow Analysis
, 1997
"... This paper deals with more general control structures, such as ifs and while loops, together with unrestricted array subscripting. Notice that we assume that unstructrured programs are preprocessed, and that for instance gotos are first converted in whiles. However, with such unpredictable, dynamic ..."
Abstract

Cited by 69 (17 self)
 Add to MetaCart
This paper deals with more general control structures, such as ifs and while loops, together with unrestricted array subscripting. Notice that we assume that unstructrured programs are preprocessed, and that for instance gotos are first converted in whiles. However, with such unpredictable, dynamic control structures, no exact information can be hoped for in the general case. However, the aim of this paper is threefold. First, we aim at showing that even partial information can be automatically gathered thanks to Fuzzy Array Dataflow Analysis (FADA). This paper extends our previous work [4] on FADA to general, nonaffine array subscripts. The second purpose of this paper is to formalize and generalize these previous formalisms and to prove general results. Third, we will show that the precise, classical ADA is a special case of FADA.
Interprocedural array regions analyses
, 1995
"... In order to perform powerful program optimizations, an exact interprocedural analysis of array data ow is needed. For that purpose, two new types of array region are introduced. IN and OUT regions represent the sets of array elements, the values of which are imported to or exported from the current ..."
Abstract

Cited by 66 (8 self)
 Add to MetaCart
In order to perform powerful program optimizations, an exact interprocedural analysis of array data ow is needed. For that purpose, two new types of array region are introduced. IN and OUT regions represent the sets of array elements, the values of which are imported to or exported from the current statement or procedure. Among the various applications are: compilation of communications for messagepassing machines, array privatization, compiletime optimization of local memory or cache behavior in hierarchical memory machines.
Semiautomatic composition of loop transformations for deep parallelism and memory hierarchies
 Intl J. of Parallel Programming
, 2006
"... Modern compilers are responsible for translating the idealistic operational semantics of the source program into a form that makes efficient use of a highly complex heterogeneous machine. Since optimization problems are associated with huge and unstructured search spaces, this combinational task is ..."
Abstract

Cited by 50 (18 self)
 Add to MetaCart
Modern compilers are responsible for translating the idealistic operational semantics of the source program into a form that makes efficient use of a highly complex heterogeneous machine. Since optimization problems are associated with huge and unstructured search spaces, this combinational task is poorly achieved in general, resulting in weak scalability and disappointing sustained performance. We address this challenge by working on the program representation itself, using a semiautomatic optimization approach to demonstrate that current compilers offen suffer from unnecessary constraints and intricacies that can be avoided in a semantically richer transformation framework. Technically, the purpose of this paper is threefold: (1) to show that syntactic code representations close to the operational semantics lead to rigid phase ordering and cumbersome expression of architectureaware loop transformations, (2) to illustrate how complex transformation sequences may be needed to achieve significant performance benefits, (3) to facilitate the automatic search for program transformation sequences, improving on classical polyhedral representations to better support operation research strategies in a simpler, structured search space. The proposed framework relies on a unified polyhedral representation of loops and statements, using normalization rules to allow flexible and expressive transformation sequencing. This representation allows to extend the scalability of polyhedral dependence analysis, and to delay the (automatic) legality checks until the end of a transformation sequence. Our work leverages on algorithmic advances in polyhedral code generation and has been implemented in a modern research compiler.
Generation of Synchronous Code for Automatic Parallelization of while Loops
 EUROPAR '95, Lecture Notes in Computer Science 966
, 1995
"... . Automatic parallelization of imperative programs has focused on nests of do loops with affine bounds and affine dependences, because in this case execution domains and dependences can be precisely known at compiletime. When dynamic control structures, such as while loops, are used, existing m ..."
Abstract

Cited by 17 (6 self)
 Add to MetaCart
. Automatic parallelization of imperative programs has focused on nests of do loops with affine bounds and affine dependences, because in this case execution domains and dependences can be precisely known at compiletime. When dynamic control structures, such as while loops, are used, existing methods for conversion to singleassignment form and domain scanning are inapplicable. This paper gives an algorithm to automatically generate parallel code, together with an algorithm to possibly convert the program to singleassignment form. 1 Introduction Automatic parallelization of imperative programs has focused on nests of do loops with affine bounds and affine dependences [10], mainly because dependences can then precisely be known at compiletime. Data or "memorybased" dependences are due to reuse of memory cells, and thus are language and programdependent, whereas dataflows or "valuebased dependences" denote transmissions of values and thus are algorithmdependent. Memoryb...
The Polyhedral Model Is More Widely Applicable Than You Think
"... Abstract. The polyhedral model is a powerful framework for automatic optimization and parallelization. It is based on an algebraic representation of programs, allowing to construct and search for complex sequences of optimizations. This model is now mature and reaches production compilers. The main ..."
Abstract

Cited by 14 (9 self)
 Add to MetaCart
Abstract. The polyhedral model is a powerful framework for automatic optimization and parallelization. It is based on an algebraic representation of programs, allowing to construct and search for complex sequences of optimizations. This model is now mature and reaches production compilers. The main limitation of the polyhedral model is known to be its restriction to statically predictable, loopbased program parts. This paper removes this limitation, allowing to operate on general datadependent controlflow. We embed control and exit predicates as firstclass citizens of the algebraic representation, from program analysis to code generation. Complementing previous (partial) attempts in this direction, our work concentrates on extending the code generation step and does not compromise the expressiveness of the model. We present experimental evidence that our extension is relevant for program optimization and parallelization, showing performance improvements on benchmarks that were thought to be out of reach of the polyhedral model. 1
On the Parallelization of Loop Nests Containing while Loops
 Proc. 1st Aizu Int. Symp. on Parallel Algorithm/Architecture Synthesis (pAs'95
, 1995
"... Recently, efforts have been made to devise automatic methods, based on a mathematical model, for the parallelization of loop nests with while loops. These methods are extensions of methods for the parallelization of nested for loops. 1 Introduction The parallelization of nested loops has been a to ..."
Abstract

Cited by 12 (7 self)
 Add to MetaCart
Recently, efforts have been made to devise automatic methods, based on a mathematical model, for the parallelization of loop nests with while loops. These methods are extensions of methods for the parallelization of nested for loops. 1 Introduction The parallelization of nested loops has been a topic of research for at least twenty years [13]. Until recently, efforts have focussed on for loops. A for loop is distinguished by the fact that its bounds are determined before the loop is executed. Modeling a set of nested for loops by a convex polytope in which each dimension enumerates the iterations of one loop has proved useful in characterizing and analyzing the space of possible parallelizations. With methods based on the polytope model, one can automatically make an optimal choice from the set of all parallelizations and achieve orders of magnitude of speedup [2, 15]. The parallelization of while loops has been investigated for a number of years. The general approach has been to ...
The Static Parallelization of Loops and Recursions
 In Proc. 11th Int. Symp. on High Performance Computing Systems (HPCS'97
, 1997
"... We demonstrate approaches to the static parallelization of loops and recursions on the example of the polynomial product. Phrased as a loop nest, the polynomial product can be parallelized automatically by applying a spacetime mapping technique based on linear algebra and linear programming. One ca ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
We demonstrate approaches to the static parallelization of loops and recursions on the example of the polynomial product. Phrased as a loop nest, the polynomial product can be parallelized automatically by applying a spacetime mapping technique based on linear algebra and linear programming. One can choose a parallel program that is optimal with respect to some objective function like the number of execution steps, processors, channels, etc. However, at best, linear execution time complexity can be attained. Through phrasing the polynomial product as a divideandconquer recursion, one can obtain a parallel program with sublinear execution time. In this case, the target program is not derived by an automatic search but given as a program skeleton, which can be deduced by a sequence of equational program transformations. We discuss the use of such skeletons, compare and assess the models in which loops and divideandconquer recursions are parallelized and comment on the performance pr...
A method for static scheduling of dynamic control programs
 LIP, Ecole Normale Sup'erieure de
, 1994
"... Static scheduling consists in compiletime mapping of operations onto logical execution dates. However, scheduling so far only applies to static control programs, i.e. roughly to nests of do (or for) loops. To extend scheduling to dynamic control programs, one needs a method that 1) is consistent wi ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Static scheduling consists in compiletime mapping of operations onto logical execution dates. However, scheduling so far only applies to static control programs, i.e. roughly to nests of do (or for) loops. To extend scheduling to dynamic control programs, one needs a method that 1) is consistent with unpredictable control ows (and thus unpredictable iteration domains) 2) is consistent with unpredictable data ows, and 3) permits speculative execution. This report describes a means to achieve these goals.
A Communication Scheme for the Distributed Execution of Loop Nests with while Loops
 Int. J. Parallel Programming
, 1995
"... . The mathematical model for the parallelization, or "spacetime mapping", of loop nests is the polyhedron model. The presence of while loops in the nest complicates matters for two reasons: (1) the parallelized loop nest does not correspond to a polyhedron but instead to a subset that resembles ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
. The mathematical model for the parallelization, or "spacetime mapping", of loop nests is the polyhedron model. The presence of while loops in the nest complicates matters for two reasons: (1) the parallelized loop nest does not correspond to a polyhedron but instead to a subset that resembles a (multidimensional) comb and (2) it is not clear when the entire loop nest has terminated. We describe a communication scheme which can deal with both problems and which can be added to the parallel target loop nest by a compiler. Keywords: loop parallelization, parallelizing compilation, spacetime mapping, while loop 1 Introduction With the advent of increasingly large and affordable parallel computing systems, the topic of loop parallelization has recently received increased attention. Modeling loops with convex polyhedra has proved useful in characterizing and analyzing the space of possible parallelizations of sets of nested loops. Nests of for loops are modeled with polytopes,...