Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Compilation techniques for high-performance applicative computation
Publisher:
  • Colorado State University
  • Computer Science Dept. Fort Collins, CO
  • United States
Order Number:AAI9007070
Pages:
145
Reflects downloads up to 22 Sep 2024Bibliometrics
Skip Abstract Section
Abstract

The importance of parallel processing in the computational community is increasing. The difficulties of programming parallel processors, however, have thwarted their exploitation. Two approaches are receiving attention as possible solutions: supercompilers for extant languages, and new languages. In the latter area, researchers have produced several applicative languages for parallel processing. In the applicative model, only data dependencies constrain evaluation order, so many operations can execute simultaneously if hardware is available. Unfortunately, preserving applicative semantics has required implementations to copy data when deriving one value from another, and in the presence of large arrays, copy costs can become prohibitively expensive. In addition to copying, applicative programs suffer from the same inefficiencies as their imperative counterparts.This dissertation discusses several compilation techniques for high performance parallel applicative computing, with emphasis on update-in-place. All the algorithms take data flow graphs as input and produce improved data flow graphs as output. We have implemented them for SISAL, an applicative language for parallel numerical computation, with encouraging results. Most programs, including those manipulating two-dimensional arrays, run in-place after optimization. Further they achieve execution times competitive with FORTRAN, C, and Pascal on one processor, and good parallel efficiency when more than one processor contributes to execution. This dissertation shows that applicative programming is a powerful approach to programming parallel computers as long as compilers support at least the optimizations of our SISAL compiler.

Cited By

  1. ACM
    Vießmann H, Šinkarovs A and Scholz S Extended Memory Reuse Proceedings of the 30th Symposium on Implementation and Application of Functional Languages, (107-118)
  2. Bernecky R, Herhut S and Scholz S Symbiotic expressions Proceedings of the 21st international conference on Implementation and application of functional languages, (107-124)
  3. Gaudiot J, DeBoni T, Feo J, Böhm W, Najjar W and Miller P The Sisal project Compiler optimizations for scalable parallel systems, (45-72)
  4. Gaudiot J, DeBoni T, Feo J, Böhm W, Najjar W and Miller P The Sisal Model of Functional Programming and its Implementation Proceedings of the 2nd AIZU International Symposium on Parallel Algorithms / Architecture Synthesis
  5. ACM
    Li Z and Kirkham C Efficient implementation of aggregates in united functions and objects Proceedings of the 33rd annual ACM Southeast Conference, (73-82)
  6. ACM
    Sastry A and Clinger W (1994). Parallel destructive updating in strict functional languages, ACM SIGPLAN Lisp Pointers, VII:3, (263-272), Online publication date: 1-Jul-1994.
  7. ACM
    Sastry A and Clinger W Parallel destructive updating in strict functional languages Proceedings of the 1994 ACM conference on LISP and functional programming, (263-272)
  8. ACM
    Cann D (1992). Retire Fortran?, Communications of the ACM, 35:8, (81-89), Online publication date: 1-Aug-1992.
  9. ACM
    Cann D Retire Fortran? A debate rekindled Proceedings of the 1991 ACM/IEEE conference on Supercomputing, (264-272)
  10. Cann D and Feo J SISAL versus FORTRAN Proceedings of the 1990 ACM/IEEE conference on Supercomputing, (626-636)
  11. ACM
    Sarkar V and Cann D (1990). POSC—a partitioning and optimizing SISAL compiler, ACM SIGARCH Computer Architecture News, 18:3b, (148-164), Online publication date: 1-Sep-1990.
  12. ACM
    Sarkar V (1990). Instruction reordering for fork-join parallelism, ACM SIGPLAN Notices, 25:6, (322-336), Online publication date: 1-Jun-1990.
  13. ACM
    Sarkar V Instruction reordering for fork-join parallelism Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, (322-336)
  14. ACM
    Sarkar V and Cann D POSC—a partitioning and optimizing SISAL compiler Proceedings of the 4th international conference on Supercomputing, (148-164)
Contributors
  • Lawrence Livermore National Laboratory

Recommendations