The Naive Execution of Affine Recurrence Equations Patrice Quinton, Sanjay Rajopadhye, Doran Wilde
نویسندگان
چکیده
In recognition of the fundamental relation between regular arrays and systems of aane recurrence equations, the Alpha language was developed as the basis of a computer aided design methodology for regular array architectures. Alpha is used to initially specify algorithms at a very high algorithmic level. Regular array architecures can then be derived from the algorithmic speciication using a transformational approach supported by the Alpha environment. This design methodology guarantees the nal design to be correct by construction, assuming the initial algorithm was correct. In this paper, we address the problem of validating an initial speciication. We demonstrate a translation methodolody which compiles Alpha into the imperative sequential language C. The C{code may then be compiled and executed to test the speciication. We show how an Alpha program can be naively implemented by viewing it as a set of monolithic arrays and their lling functions, implemented using applicative caching. This is the approach which is used by the translator. We discuss two problems that had to be solved before implementing the translator. The rst is how to allocate 1{dimensional storage for a polyhedron, and the second is how to scan a polyhedron with nested loops. Ex ecution na ve d' equations r ecurrentes aanes R esum e : Mettant a proot la relation qui existe entre les architectures r eguli eres et les equations r ecurrences aanes, le langage Alpha a et e d evelopp e pour servir de base a une m ethode de CAO pour les circuits r eguliers. Alpha est d'abord utilis e pour sp eciier les algorithmes a un tr es haut niveau d'abstraction. Les architectures r eguli eres peuvent ensuite ^ etre d eriv ees a partir de la sp eciication algorithmique en utilisant une approche transformationnelle, permise par l'environnement Alpha. Cette m ethode de conception garantit que le r esultat nal est correct par construction. Dans cet article, on etudie la validation de la sp eciication initiale. On pr esente une m ethode de traduction de Alpha vers le langage C. Le code C peut ensuite compil e et ex ecut e pour v eriier la sp eciication. Nous montrons comment un programme Alpha peut ^ etre impl ement e na vement en le consi-d erant comme un ensemble de tableaux monolithiques munis de fonctions de remplissage, r ealis ees par un m ecanisme de cache applicatif. C'est cette approche qui est utilis ee …
منابع مشابه
The naive execution of affine recurrence equations
In recognition of the fundamental relation between regular arrays and systems of affine recurrence equations, the ALPHA language was developed as the basis of a computer aided design methodology for regular array architectures. ALPHA is used to initially specify algorithms at a very high algorithmic level. Regular array architecures can then be derived from the algorithmic specification using a...
متن کاملMemory Reuse Analysis in the Polyhedral
In the context of developing a compiler for a Alpha, a functional data-parallel language based on systems of aane 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 suucien...
متن کاملOn deriving data parallel code from a functional program
We discuss a translation methodology for transforming a high level algorithmic speciication written in Alpha to an imperative data parallel language. We informally introduce the Alpha language with the aid of an example and explain how it is adapted for doing static analysis and transformation. An Alpha program can be naively compiled 11] using applicative caching. Our compilation method makes ...
متن کاملExtension Of The Alpha Language To Recurrences On Sparse Periodic Domains
Alpha is a functional language based on systems of aane recurrence equations over polyhedral domains. We present an extension of Alpha to deal with sparse polyhedral domains. Such domains are modeled by Z-polyhedra, namely the intersection of lattices and polyhedra. We summarize the mathematical closure properties of Z-polyhedra, and we show how the important features of Alpha, namely normaliza...
متن کاملDeriving Imperative Code from Functional Programs Patrice Quinton, Sanjay Rajopadhye, Doran Wilde
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 eecient parallel imperative code from an Alpha program. In this paper, we discuss the related problem of generating eecient single processor imperative code. Analysis techniques that were developed for the synthesis of systolic arrays are ext...
متن کامل