Results 1 -
6 of
6
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 single-assignment code to multiple assignment code. We show how the polyhedral model allows us to statical ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
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 single-assignment 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...
Deriving Imperative Code From Functional Programs
- In 7th Conference on Functional Programming Languages and Computer Architecture
, 1995
"... : Alpha is a data parallel functional language which has the capability of specifying algorithms at a very high level. Our ultimate objective is to generate efficient parallel imperative code from an Alpha program. In this paper, we discuss the related problem of generating efficient single processo ..."
Abstract
-
Cited by 6 (6 self)
- Add to MetaCart
: Alpha is a data parallel functional language which has the capability of specifying algorithms at a very high level. Our ultimate objective is to generate efficient parallel imperative code from an Alpha program. In this paper, we discuss the related problem of generating efficient single processor imperative code. Analysis techniques that were developed for the synthesis of systolic arrays are extended and adapted for the compilation of functional programming languages. We also demonstrate how a transformational methodology can be used as a compilation engine to transform an Alpha program to a sequential form. C--code is then generated using a straightforward pretty printer from the sequential form Alpha program. The C--code may then be compiled to efficiently execute the program. Key-words: parallelizing compilers, functional languages (R'esum'e : tsvp) Supported by NSF grant MIP-910852 and Esprit Basic Research Action NANA2, Number 6632 email: quinton@irisa.fr email: rajopadh@...
Structuration of the Alpha language
- In Massively Parallel Programming Models
, 1995
"... This paper presents extensions to Alpha, a language based upon the formalism of affine recurrence equations (AREs). These extensions address the need for parametric and structured systems of such AREs. Similar to, but more general as the map operator of classical functional languages, the Alpha stru ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
This paper presents extensions to Alpha, a language based upon the formalism of affine recurrence equations (AREs). These extensions address the need for parametric and structured systems of such AREs. Similar to, but more general as the map operator of classical functional languages, the Alpha structuration techniques provide a dense and powerful description of complex systems referencing each other. Such structured systems of AREs may be interpreted as (or translated into) sequential function calls, hierarchical hardware description, or any SIMD flavour of structured programming. With the help of examples, we give an overview of these techniques, and their substitution semantics based on the homomorphic extension of convex polyedra and affine functions. Introduction The Alpha Language [3, 6] is a strongly typed functional language which embodies the formalism of affine recurrence equations (AREs) first introduced by Karp, Miller and Winograd [2]. An environment has been developped ...
Hierarchical static analysis of structured systems of affine recurrence equations
- In ASAP
, 1996
"... The Alpha language, based on systems of affine recurrence equations over polyhedral domains, allows the expression of complex algorithms as hierarchical, parameterized structures of such systems. This paper discusses the static analysis of Alpha programs, an extended type-checking process based on t ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The Alpha language, based on systems of affine recurrence equations over polyhedral domains, allows the expression of complex algorithms as hierarchical, parameterized structures of such systems. This paper discusses the static analysis of Alpha programs, an extended type-checking process based on the single assignment rule. We present techniques ensuring, on one hand, that a system is valid (with respect to this rule) within a certain range of its parameters, and on the other, that no system is used with invalid values of its parameters. These techniques have been implemented in a versatile tool for Alpha which is demonstrated on the example of the Gaussian elimination. 1
From ALPHA to Imperative Alpha to Imperative Code: A Transformational Compiler for an Array Based Functional Language
, 1995
"... Practical parallel programming demands that the details of distributing data to processors and interprocessor communication be managed by the compiler. These tasks quickly become too difficult for a programmer to do by hand for all but the simplest parallel programs. Yet, many parallel languages sti ..."
Abstract
- Add to MetaCart
Practical parallel programming demands that the details of distributing data to processors and interprocessor communication be managed by the compiler. These tasks quickly become too difficult for a programmer to do by hand for all but the simplest parallel programs. Yet, many parallel languages still require the programmer to manage much of the the parallelism. I discuss the synthesis of parallel imperative code from algorithms written in a functional language called Alpha. Alpha is based on systems of affine recurrence equations and was designed to specify algorithms for regular array architectures. Being a functional language, Alpha implicitly supports the expression of both concurrency and communication. Thus, the programmer is freed from having to explicitly manage the parallelism. Using the information derived from static analysis, Alpha can be transformed into a form suitable for generating imperative parallel code through a series of provably correct program transformations. Th...
Automatic Synthesis of Regular Architectures Optimized at the Bit Level
, 1997
"... : This paper presents methods based on the formalism of affine recurrence equations for the synthesis of bit-level regular architectures from word-level (integer or real) algorithms. Because of bit-level dependency analysis, the arrays have optimal efficiency. We present two possible design flows le ..."
Abstract
- Add to MetaCart
: This paper presents methods based on the formalism of affine recurrence equations for the synthesis of bit-level regular architectures from word-level (integer or real) algorithms. Because of bit-level dependency analysis, the arrays have optimal efficiency. We present two possible design flows leading to architectures based either on bit-parallel or bit-serial operators. The first one is fully automated. Key-words: high level synthesis, regular arrays, arithmetic operators (R'esum'e : tsvp) Also published in the Proceedings of the Workshop on Design Methodologies for Signal Processing -- Zakopane, Poland -- 29-30 August 1996 * This research is partly supported by CNET/France Telecom. ** ffdupontg,flemoenneg@irisa.fr CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE Centre National de la Recherche Scientifique Institut National de Recherche en Informatique (URA 227) Universit e de Rennes 1 -- Insa de Rennes et en Automatique -- unit e de recherche de Rennes Synth`ese automatique...

