## Development and Verification of Parallel Algorithms in the Data Field Model (2000)

Venue: | Proc. 2nd Int. Workshop on Constructive Methods for Parallel Programming |

Citations: | 1 - 1 self |

### BibTeX

@INPROCEEDINGS{Lisper00developmentand,

author = {Björn Lisper and Jonas Holmerin},

title = {Development and Verification of Parallel Algorithms in the Data Field Model},

booktitle = {Proc. 2nd Int. Workshop on Constructive Methods for Parallel Programming},

year = {2000},

pages = {115--130}

}

### OpenURL

### Abstract

. Data fields are partial functions provided with explicit domain information. They provide a very general, formal model for collections of data. Algorithms computing data collections can be described in this formalism at various levels of abstraction: in particular, explicit data distributions are easy to model. Parallel versions of algorithms can then be formally verified against algorithm specifications in the model. Functions computing data fields can be directly programmed in the language Data Field Haskell. In this paper we give a brief introduction to the data field model. We then describe Data Field Haskell and make a small case study of how an algorithm and a parallel version of it both can be specified in the language. We then verify the correctness of the parallel version in the data field model. 1 Introduction Many computing applications require indexed data structures. In many applications the indexing capability provides an important part of the model. On the ...

### Citations

238 |
The Formal Semantics of Programming Languages, an introduction. Foundations of Computing
- Winskel
- 1993
(Show Context)
Citation Context ...n outside its domain return an error value "", with algebraic properties similar to the divergent element ?. We define partial functions in a variation of the metalanguage for continuous fun=-=ctions in [23]-=-, extended with the constant . Within this language, we can now define most types of collection-oriented operations [20] as higher order functions operating on partial functions [7, 14]. The language,... |

218 | An introduction to the theory of lists
- Bird
- 1987
(Show Context)
Citation Context ...\Phi f(enum f (n + 1)) If \Phi has an identity element e, then we define red(\Phi; x:) = e for the empty partial function x:. Note the analogy with reduction over lists in the Bird-Meertens formalism =-=[1]-=-: we indeed have red(\Phi; f) = \Phi=[f (enum f (0)); : : : ; f(enum f (size(f) \Gamma 1))] We will develop this analogy further in Sect. 5, where we will use the partial function model to verify the ... |

193 | Programming parallel algorithms
- Blelloch
- 1996
(Show Context)
Citation Context ... for instance they can have a wider variety of shapes than traditional array bounds. Examples of functional data parallel and array languages are Connection Machine Lisp [22], Id [3], Sisal [4], NESL =-=[2]-=-, Data Parallel Haskell [9], and pH [15]. These languages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haskell itself [17] has also been ... |

103 |
A report on the sisal language project
- Feo, Cann, et al.
- 1990
(Show Context)
Citation Context ... respects, for instance they can have a wider variety of shapes than traditional array bounds. Examples of functional data parallel and array languages are Connection Machine Lisp [22], Id [3], Sisal =-=[4]-=-, NESL [2], Data Parallel Haskell [9], and pH [15]. These languages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haskell itself [17] has ... |

53 | Collection-oriented languages
- Sipelstein, GE
- 1991
(Show Context)
Citation Context ...artial functions in a variation of the metalanguage for continuous functions in [23], extended with the constant . Within this language, we can now define most types of collection-oriented operations =-=[20] as h-=-igher order functions operating on partial functions [7, 14]. The language, however, lacks operations which extract the domain of a function or any information pertaining to it, like the size ("i... |

41 | Report on programming language Haskel a non-strict, purely functional language version 1.2
- Fasel, Hammond, et al.
- 1992
(Show Context)
Citation Context ...d computed depends on the arguments as shown in Table 1. 3.1 Forall-abstraction Data Field Haskell provides '-abstraction, with the following syntax (described in the metasyntax of the Haskell report =-=[17]-=-): forall apat 1 : : : apat n -? exp datafield defines data field from function and bound ! data field indexing outofBounds the out-of-bounds error valuesoutofBounds the out-of-bounds error valuesisou... |

38 |
Connection Machine Lisp: Fine-grained parallel symbolic processing
- Hillis
- 1986
(Show Context)
Citation Context ...fields also in other respects, for instance they can have a wider variety of shapes than traditional array bounds. Examples of functional data parallel and array languages are Connection Machine Lisp =-=[22]-=-, Id [3], Sisal [4], NESL [2], Data Parallel Haskell [9], and pH [15]. These languages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haske... |

30 |
On the relation between functional and data-parallel programming languages, in
- Lisper, Hammarlund
- 1993
(Show Context)
Citation Context ...rification of parallel programs. 2 The Data Field Model 2.1 Partial Functions The concept of data fields is based on the more abstract model of indexed data structures as functions with finite domain =-=[7, 12]. An array-=- with range [1..n], for instance, can be seen as a function from f1; : : : ; ng, but we could also model "irregular" indexed structures as functions with non-contiguous, possibly non-numeric... |

23 | Garbage collection and memory efficiency in lazy functional languages
- Röjemo
- 1995
(Show Context)
Citation Context ...ll dialect where the arrays have been replaced by an instance of data fields, a variation of the sparse/dense arrays of [13, 14]. Our implementation of Data Field Haskell is based on the NHC compiler =-=[18]-=- for Haskell v. 1.3. The implementation is sequential and we have not implemented any advanced optimizations. In the following the reader is assumed to have a working knowledge of Haskell. Data Field ... |

20 | The Functional Imperative: Shape
- Jay, Steckler
- 1998
(Show Context)
Citation Context ...guages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haskell itself [17] has also been suggested for data parallel programming [16]. FISh =-=[11]-=- is an imperative array language, which shares some features with Data Field Haskell such as advanced polymorphism. It is, however restricted to regular arrays and certain recursion patterns which ena... |

16 |
Data parallelism and functional programming
- Lisper
- 1996
(Show Context)
Citation Context ...rification of parallel programs. 2 The Data Field Model 2.1 Partial Functions The concept of data fields is based on the more abstract model of indexed data structures as functions with finite domain =-=[7, 12]. An array-=- with range [1..n], for instance, can be seen as a function from f1; : : : ; ng, but we could also model "irregular" indexed structures as functions with non-contiguous, possibly non-numeric... |

12 | The Automated Transformation of Abstract Specifications of Numerical Algorithms into Efficient
- Fitzpatrick, Harmer, et al.
- 1997
(Show Context)
Citation Context ...ertens Formalism [6]. Data Field Haskell could serve as a flexible format supporting these methods. Transformation of algorithm specifications in ML into programs for SIMD computers was considered in =-=[5]-=-. 7 Conclusions and Further Research We have presented the data field model and Data Field Haskell, a Haskell dialect which provides an instance of data fields. A possible application of Data Field Ha... |

12 | Extracting and implementing list homomorphisms in parallel program development
- Gorlatch
(Show Context)
Citation Context ...ch in parallel functional programming is found in [8]. High-level specification and formal derivation of parallel programs has been considered in the BSP model [21] and in the Bird-Meertens Formalism =-=[6]-=-. Data Field Haskell could serve as a flexible format supporting these methods. Transformation of algorithm specifications in ML into programs for SIMD computers was considered in [5]. 7 Conclusions a... |

10 |
A perspective on Id
- EKANADHAM
- 1991
(Show Context)
Citation Context ...so in other respects, for instance they can have a wider variety of shapes than traditional array bounds. Examples of functional data parallel and array languages are Connection Machine Lisp [22], Id =-=[3]-=-, Sisal [4], NESL [2], Data Parallel Haskell [9], and pH [15]. These languages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haskell itsel... |

10 | Data parallel Haskell: Mixing old and new glue
- Hill
- 1993
(Show Context)
Citation Context ... a wider variety of shapes than traditional array bounds. Examples of functional data parallel and array languages are Connection Machine Lisp [22], Id [3], Sisal [4], NESL [2], Data Parallel Haskell =-=[9]-=-, and pH [15]. These languages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haskell itself [17] has also been suggested for data parallel... |

9 |
Arrays in FIDIL
- Semenzato, Hilfinger
- 1989
(Show Context)
Citation Context ...6 Related Work An excellent survey of collection-oriented languages up to around 1990 is found in [20]. The computation of bounds for forall-abstraction yields the implicit intersection rule of FIDIL =-=[19]-=-. The arrays in FIDIL resemble data fields also in other respects, for instance they can have a wider variety of shapes than traditional array bounds. Examples of functional data parallel and array la... |

7 |
pH language reference manual, version 1.0
- NIKHIL, ARVIND, et al.
- 1995
(Show Context)
Citation Context ...iety of shapes than traditional array bounds. Examples of functional data parallel and array languages are Connection Machine Lisp [22], Id [3], Sisal [4], NESL [2], Data Parallel Haskell [9], and pH =-=[15]-=-. These languages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haskell itself [17] has also been suggested for data parallel programming ... |

4 | Data fields
- Lisper
- 1998
(Show Context)
Citation Context ... We will use this in Sect. 5. 3 Data Field Haskell Data Field Haskell is a Haskell dialect where the arrays have been replaced by an instance of data fields, a variation of the sparse/dense arrays of =-=[13, 14]-=-. Our implementation of Data Field Haskell is based on the NHC compiler [18] for Haskell v. 1.3. The implementation is sequential and we have not implemented any advanced optimizations. In the followi... |

2 | Implementing data fields in Haskell
- Holmerin
- 1999
(Show Context)
Citation Context ...al specification. Sect. 6 provides an account for related work. In Sect. 7, finally, the story is wrapped up. The limited space does not allow a complete description of Data Field Haskell here -- see =-=[10]-=- for the details. Various versions of the data field model have been described elsewhere [7, 12-- 14]. The contribution of this paper is a description of a concrete implementation, an example of how i... |

2 |
The data field model. Submitted. Preliminary version avaliable as Tech
- Lisper, Hammarlund
- 2000
(Show Context)
Citation Context ...uous functions in [23], extended with the constant . Within this language, we can now define most types of collection-oriented operations [20] as higher order functions operating on partial functions =-=[7, 14]. The lang-=-uage, however, lacks operations which extract the domain of a function or any information pertaining to it, like the size ("information operations" as defined in [20]). The lack of domain in... |

2 |
Data parallelism
- O'Donnell
(Show Context)
Citation Context .... These languages are intended for direct parallel implementation whereas Data Field Haskell targets the specification phase. Haskell itself [17] has also been suggested for data parallel programming =-=[16]-=-. FISh [11] is an imperative array language, which shares some features with Data Field Haskell such as advanced polymorphism. It is, however restricted to regular arrays and certain recursion pattern... |

1 |
Building BSP programs using the refinement calculus. External
- Skillicorn
- 1996
(Show Context)
Citation Context ...namic algorithms. A survey of the research in parallel functional programming is found in [8]. High-level specification and formal derivation of parallel programs has been considered in the BSP model =-=[21]-=- and in the Bird-Meertens Formalism [6]. Data Field Haskell could serve as a flexible format supporting these methods. Transformation of algorithm specifications in ML into programs for SIMD computers... |