The AIM is laziness in a data-parallel language (1993)
| Citations: | 10 - 5 self |
BibTeX
@MISC{Hill93theaim,
author = {Jonathan M. D. Hill and Queen Mary},
title = {The AIM is laziness in a data-parallel language},
year = {1993}
}
OpenURL
Abstract
Although many data-parallel functional languages exist, Lisp, NESL, Paralation Lisp, FX and Parallel EuLisp, few researchers have investigated incorporating data-parallelism with a lazy language. This paper describes data-parallel extensions which have been incorporated into the lazy functional language Haskell. We describe pods, parallel data structures that share many of the characteristics of Haskell arrays---their distinguishing feature however is they are unbounded. We present POD comprehensions, a framework within which communication and parallel operations on PODs can be expressed. The semantics of these extensions is given in terms of translation rules into a core set of primitive parallel operations. Particular attention is given to the non-strict nature of these extensions. Development of the higher order parallel map, fold, and scan is presented, a trio of functions that is widely accepted as being fundamental to a data-parallel paradigm. Ladner classifies a problem as being susceptible to parallel scanning if it is of a fixed size and can be solved by a finite state transducer. We show that by utilising lazy evaluation, Ladners requirements can be relaxed such that the lazy verzion of scan presented here has the potential to scan an infinite POD.







