Book Chapter10.1007/3-540-61736-1_50
Data Parallelism and Functional Programming
Björn Lisper
- 01 Jan 1996
- pp 220-251
21
TL;DR: A formalism for data parallel functional programming is described, allowing very simple languages, where the view of aggregate data is particularly abstract, and how various data parallel operations can be expressed in this formalism is explained.
read more
Abstract: Data parallelism is often seen as a form of explicit parallelism for SIMD and vector machines, and data parallel programming as an explicit programming paradigm for these architectures. Data parallel languages possess certain software qualities as well, which justifies their use in higher level programming and specification closer to the algorithm domain. Thus, it is interesting to study how the data parallel paradigm can be best realized in a declarative setting, since declarative languages offer a pure view of computation which is good for these purposes. For numerical computing the functional programming paradigm is especially attractive, since numerical algorithms often are specified by recursion equations and thus can be translated more or less directly into recursive functional programs. Merging the data parallel and functional paradigms then yields languages and formalisms where many algorithms can be expressed in a very succinct fashion. In this paper we review data parallelism, functional programming, and existing approaches to the integration of the two paradigms. We then proceed to describe a formalism for data parallel functional programming, allowing very simple languages, where the view of aggregate data is particularly abstract. We explain how various data parallel operations can be expressed in this formalism. Finally, we conclude with a discussion of issues for languages based directly on the formalism.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
The Data Parallel Programming Model: A Semantic Perspective
Luc Bougé
- 01 Jan 1996
TL;DR: In this paper, the authors provide a short introduction to the data parallel programming model and demonstrate that important aspects of the Data Parallel Programming model were already present in earlier approaches to parallel programming.
29
Pattern-matching and rewriting rules for group indexed data structures
Jean-Louis Giavitto,Olivier Michel,Julien Cohen +2 more
- 05 Oct 2002
TL;DR: A new framework for the definition of various data structures together with a generic language of filters enabling a rule-based programming style of functions is presented, implemented in an experimental language called MGS.
20
Reasoning about Program Transformations
Jean-Francois Collard
- 01 Jun 2002
TL;DR: This book details program analyses and transformations that extract the flow of data in computer memory systems and shows that correctness of program transformations is guaranteed by the conservation of data flow.
Case study on algebraic software methodologies for scientific computing
TL;DR: This work outlines a use of algebraic software methodologies and advanced program constructors to improve the abstraction level of software for scientific computing through the use of domain specific languages and appropriate software architectures.
The Data-Parallel Programming Model: a Semantic Perspective (Final Version)
Luc Bougé
- 01 Jan 1996
TL;DR: It is argued that parallel computing often makes little distinction between the execution model and the programming model, which results in poor programming and low portability, and data parallelism can be seen as a way out of this difficulty.
16
References
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints
Patrick Cousot,Radhia Cousot +1 more
- 01 Jan 1977
TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
•Book
The Lambda Calculus. Its Syntax and Semantics
Henk Barendregt
- 30 Apr 2012
TL;DR: In this article, the Lambda-Calculus has been studied as a theory of composition and reduction, and the theory of reduction has been used to construct models of Lambda Theories.
2.9K
Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs
TL;DR: A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules; these systems have semantics loosely coupled to states—only one state transition occurs per major computation.
2.8K
VLSI Array processors
TL;DR: A general overview of VLSI array processors and a unified treatment from algorithm, architecture, and application perspectives is provided in this article, where a broad range of application domains including digital filtering, spectrum estimation, adaptive array processing, image/vision processing, and seismic and tomographic signal processing.
1.6K