The PAULA Language for Designing Multi-Dimensional Dataflow-Intensive Applications

In this paper, we present the PAULA language which is designed for modeling dataflow-intensive applications. The language is intended for designing highly parallel algorithms at instruction, data, and loop level parallelism. The PAULA language allows very compact and efficient behavioral descriptions and serves as design entry when generating dedicated hardware accelerators, or might be used as high-level programming language for tightly coupled multi-processor architectures. The language covers a broad range of applications from the areas of digital image, video and other signal processing, linear algebra, cryptography, and many other scientific computing domains where efficient parallelization techniques and hardware accelerators are indispensable. Key features of the PAULA language are: Its functional programming paradigm that makes parallelism explicit, an intuitive and compact syntax for describing iteration spaces, the deployment of big operators, and the advantage to describe also architectural parts of a target architecture. The usage of PAULA as design entry for hardware synthesis in our PARO design tool is demonstrated for several selected algorithms.

[1]  Nikil D. Dutt,et al.  SPARK: a high-level synthesis framework for applying parallelizing compiler transformations , 2003, 16th International Conference on VLSI Design, 2003. Proceedings..

[2]  Rishiyur S. Nikhil An Overview of the Parallel Language Id (a foundation for pH, a parallel dialect of Haskell) , 1993 .

[3]  Jean-Luc Gaudiot,et al.  The Sisal Project: Real World Functional Programming , 2001, Compiler Optimizations for Scalable Parallel Systems Languages.

[4]  Jürgen Teich,et al.  A highly parameterizable parallel processor array architecture , 2006, 2006 IEEE International Conference on Field Programmable Technology.

[5]  E. Rijpkema,et al.  Compaan: deriving process networks from Matlab for embedded signal processing architectures , 2000, Proceedings of the Eighth International Workshop on Hardware/Software Codesign. CODES 2000 (IEEE Cat. No.00TH8518).

[6]  Doran Wilde,et al.  Regular array synthesis using ALPHA , 1994, Proceedings of IEEE International Conference on Application Specific Array Processors (ASSAP'94).

[7]  Scott A. Mahlke,et al.  High-level synthesis of nonprogrammable hardware accelerators , 2000, Proceedings IEEE International Conference on Application-Specific Systems, Architectures, and Processors.

[8]  Simon Thompson,et al.  Haskell: The Craft of Functional Programming , 1996 .

[9]  Jürgen Teich,et al.  Dynamic Piecewise Linear/Regular Algorithms , 2004, Parallel Computing in Electrical Engineering, 2004. International Conference on.

[10]  Christian Lengauer,et al.  Loop Parallelization in the Polytope Model , 1993, CONCUR.

[11]  Patrice Quinton,et al.  Hardware synthesis for multi-dimensional time , 2003, Proceedings IEEE International Conference on Application-Specific Systems, Architectures, and Processors. ASAP 2003.

[12]  James R. McGraw,et al.  The VAL Language: Description and Analysis , 1982, TOPL.

[13]  Jürgen Teich,et al.  Efficient control generation for mapping nested loop programs onto processor arrays , 2007, J. Syst. Archit..

[14]  Paul Feautrier,et al.  Automatic Parallelization in the Polytope Model , 1996, The Data Parallel Programming Model.

[15]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[16]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[17]  Jürgen Teich,et al.  Resource constrained and speculative scheduling of an algorithm class with run-time dependent conditionals , 2004 .

[18]  Ed F. Deprettere,et al.  Expression synthesis in process networks generated by LAURA , 2005, 2005 IEEE International Conference on Application-Specific Systems, Architecture Processors (ASAP'05).