Results 1 
6 of
6
Optimization of Array Accesses by Collective Loop Transformations
, 1990
"... In this paper, we investigate the problem of optimizing array accesses across a collection of loops. We demonstrate that a good solution to such a problem should be based on an optimization scheme, called collective loop transformations, that considers all loops simultaneously. In particular, loop r ..."
Abstract

Cited by 37 (2 self)
 Add to MetaCart
In this paper, we investigate the problem of optimizing array accesses across a collection of loops. We demonstrate that a good solution to such a problem should be based on an optimization scheme, called collective loop transformations, that considers all loops simultaneously. In particular, loop reversal, loop interchange and loop fusion are performed collectively on a set of loop nests. The main impact of these transformations is an optimization called array contraction, that saves space and time by converting an array variable into a scalar variable or a buffer containing a small number of scalar variables. This optimization is applicable to generalpurpose highperformance architectures. For a multiprocessor architecture, array contraction is performed by executing the producer and consumer loops on separate processors, and by using a smaller buffer for the array communication. For a uniprocessor architecture, array contraction is performed by fusing the producer and consumer loop...
DOSC: A SISAL Compiler for DistributedMemory Machines
 In Proceedings of the 2nd Parallel Computation and Scheduling Workshop
, 1997
"... In this paper we present the results of the implementation of DOSC: a prototype SISAL compiler for distributedmemory machines. The compiler is an extension of the Optimizing SISAL Compiler (OSC) version 12.9.1, it generates C code with calls to the message passing library MPI. The main goals of th ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
In this paper we present the results of the implementation of DOSC: a prototype SISAL compiler for distributedmemory machines. The compiler is an extension of the Optimizing SISAL Compiler (OSC) version 12.9.1, it generates C code with calls to the message passing library MPI. The main goals of this implementation are to obtain a SISAL compiler that generates code for distributedmemory machines and to identify the compiler optimizations that can improve the performance of the code generated for the target architecture. 1 Introduction Two issues involved in writing programs for distributedmemory machines are to identify the available parallelism in the program and to implement the program on the target architecture such that the parallelism is exploited. During the past decade the programmer was responsible for identifying the opportunities for parallelism and deciding on the best implementation that exploited such parallelism. Parallel programming is not an easy task, since it usu...
Uniqueness and Completeness Analysis of Array Comprehensions
 Proceedings of the First International Static Analysis Symposium, SAS94
, 1994
"... . In this paper we introduce the uniqueness and completeness problems of array comprehensions. An array comprehension has the uniqueness property if it defines each array element at most once. Uniqueness is a necessary condition for correctness in single assignment languages such as Haskell, Id, and ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
. In this paper we introduce the uniqueness and completeness problems of array comprehensions. An array comprehension has the uniqueness property if it defines each array element at most once. Uniqueness is a necessary condition for correctness in single assignment languages such as Haskell, Id, and Sisal. The uniqueness problem can be stated as a data dependence problem, which in itself can be reformulated as an integer linear programming problem. We derive algorithms to solve uniqueness using the Omega Test, an Integer Linear Programming tool. An array comprehension has the completeness property if all its elements are defined. Completeness is a necessary condition for strict arrays. We present an algorithm that tests for completeness and describe an implementation of the algorithm based on multivariate polynomials. 1 Introduction Some functional languages, such as Haskell, Id, and Sisal [12, 15, 14], have been designed to be used for parallel scientific computing, and should theref...
Unimodular Transformations of Monolithic Array Constructors
, 1992
"... Unimodular transformation has been proposed as a powerful techniques for loop parallelization in imperative language programs. In this paper, we propose to apply unimodular transformation to functional language programs. In particular, we propose a method of applying unimodular transformation to mon ..."
Abstract
 Add to MetaCart
(Show Context)
Unimodular transformation has been proposed as a powerful techniques for loop parallelization in imperative language programs. In this paper, we propose to apply unimodular transformation to functional language programs. In particular, we propose a method of applying unimodular transformation to monolithic arrays such as Haskell array comprehensions. Using our method, a compiler can deduce a safe and parallel order of evaluation for a given monolithic array. We formulate the problem of unimodular transformation under the context of functional programming. Instead of solving the result integer programming problem using expensive general solution techniques, we developed an efficient solution scheme by making use of the dependence direction and distance information in guiding the search of optimal solutions. We report an implementation of the algorithms in our experimental testbed. i Contents 1 Introduction 1 2 Monolithic Arrays 1 3 From MACs to Double Loops: An Example 4 4 Problem Fo...
Uniqueness Analysis of Array Comprehensions Using the Omega Test
, 1993
"... In this paper we introduce the uniqueness problem of array comprehensions. An array comprehension has the uniqueness property if it defines each array element at most once. Uniqueness is a necessary condition for the correctness of single assignment languages such as Haskell, Id, and Sisal. The uniq ..."
Abstract
 Add to MetaCart
In this paper we introduce the uniqueness problem of array comprehensions. An array comprehension has the uniqueness property if it defines each array element at most once. Uniqueness is a necessary condition for the correctness of single assignment languages such as Haskell, Id, and Sisal. The uniqueness problem can be stated as a data dependence problem, which in itself can be reformulated as an integer linear programming problem. We derive algorithms to solve this problem using the Omega test, an Integer Linear Programming tool.
Uniqueness and Completeness Analysis of Array Comprehensions
, 1994
"... In this paper we introduce the uniqueness and completeness problems of array comprehensions. An array comprehension has the uniqueness property if it defines each array element at most once. Uniqueness is a necessary condition for correctness in single assignment languages such as Haskell, Id, and S ..."
Abstract
 Add to MetaCart
In this paper we introduce the uniqueness and completeness problems of array comprehensions. An array comprehension has the uniqueness property if it defines each array element at most once. Uniqueness is a necessary condition for correctness in single assignment languages such as Haskell, Id, and Sisal. The uniqueness problem can be stated as a data dependence problem, which in itself can be reformulated as an integer linear programming problem. We derive algorithms to solve uniqueness using the Omega Test, an Integer Linear Programming tool. An array comprehension has the completeness property if all its elements are defined. Completeness is a necessary condition for strict arrays. We present an algorithm that tests for completeness and describe an implementation of the algorithm based on multivariate polynomials.