Skip to main content

The aim is laziness in a data-parallel language

  • Chapter
Functional Programming, Glasgow 1993

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

Although many data-parallel functional languages exist, *Lisp [22], NESL have investigated incorporating data-parallelism with a lazy language. This paper describes data-parallel extensions which have been incorporated into the lazy functional lan guage 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 semant ics of these extensions is given in terms of translation rules into a core set of primitive parallel operations. Particular attention is given to th e 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 [21]. Ladner [12] classifies a problem as being susceptible to parallel scanning if it is of a fixed size and can be solved by a finit e state transducer. We show that by utilising lazy evaluation, Ladner ’s requirements can be relaxed such that t he lazy version of scan presented here has the potential to scan an infinite POD.

This work has been supported through a SERC case award in association with Cambridge Parallel Processing.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. E. Bleiloch. Scans as primitive parallel operations. IEEE Transactions on computers, 38(11):1526–1538, Nov. 1989.

    Article  Google Scholar 

  2. G. E. Blelloch. NESL: A nested data-parallel language. Technical Report CMU-CS-93-129, Carnegie Mellon University, Apr. 1993.

    Google Scholar 

  3. K. Clarke and J. M. D. Hill. Parallel Haskell: The not-so parallel features in parallel. Technical Report 658, QMW CS, Dec. 1993. Available by FTP from ftp.dcs.qmw.ac.uk in /pub/cpc/jon_hill/pHiterative.ps.

    Google Scholar 

  4. J. Darlington. Program transformation and synthesis: present capabilities. Technical Report 77/43, Dept of Computing and Control, Imperial College, London, Sept. 1977.

    Google Scholar 

  5. K. Hammond and S. L. Peyton Jones. Profiling scheduling strategies on the GRIP parallel reducer. Technical report, Glasgow University, 1991.

    Google Scholar 

  6. J. M. D. Hill. Data Parallel Haskell: Mixing old and new glue. Technical Report 611, QMW CS, Dec. 1992. Available by FTP from ftp.dcs.qmw.ac.uk in /pub/cpc/jon_hill/dpGlue.ps.

    Google Scholar 

  7. J. M. D. Hill. Parallel lexical analysis and parsing on the AMT Distributed Array Processor. Parallel Computing, 18(6):699–714, July 1992.

    Article  MATH  Google Scholar 

  8. J. M. D. Hill. Vectorizing a non-strict functional language for a data-parallel “Spineless (not so) Tagless G-Machine”. In Proc. of the 5 th international workshop on the implementation of functional languages, Nijmegen, Holland, Sept. 1993. Available by FTP from ftp.dcs.qmw.ac.uk in /pub/cpc/jon_hill/vectorizeNonStrict.ps.

    Google Scholar 

  9. P. Hudak, S. L. Peyton Jones, and P. Wadler (editors). Report on the Programming Language Haskell, A Non-strict Purely Functional Language (Version 1.2). ACM SIGPLAN Notices, Mar. 1992.

    Google Scholar 

  10. J. Hughes. Why functional programming matters. The Computer Journal, 32(2):98–107, 1989.

    Article  Google Scholar 

  11. G. K. Jouret. Compiling functional languages for SIMD architectures. In Third IEEE Symposium on parallel and distributed processing, pages 79–86, 1991.

    Google Scholar 

  12. R. E. Ladner and M. J. Fischer. Parallel prefix computation. JACM, 27(4):831–838, Oct. 1980.

    Article  MathSciNet  MATH  Google Scholar 

  13. P. J. Landin. A correspondence between ALGOL 60 and Church’s lambda notation. Communications of the ACM, 8(2):89–101, Feb. 1965. Part 2 in CACM Vol 8(2) 1965, pages 158-165.

    Article  MathSciNet  Google Scholar 

  14. S. Merall and J. Padget. Collections and garbage collection. In International Workshop Memory Management, St.Malo, pages 473–489. Springer-Verlag, 1992.

    Google Scholar 

  15. J. T. O’Donnell. Data parallel implementation of extensible sparse functional arrays. In PARLE, 1993.

    Google Scholar 

  16. W. D. Partain. Normal order reduction using scan primitives. In S. L. Peyton Jones, G. Hutton, and C. Holst, editors, Functional Programming, Glasgow. Springer Verlag, Aug. 1990.

    Google Scholar 

  17. S. L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall International, 1987.

    Google Scholar 

  18. S. L. Peyton Jones. Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine. Journal of Functional Programming, 1992.

    Google Scholar 

  19. S. L. Peyton Jones and P. Wadler. Imperative functional programming. In POPL, 1993.

    Google Scholar 

  20. G. Sabot. The Parallation Model: Architecture Independent SIMD Programming. MIT Press, 1988.

    Google Scholar 

  21. D. B. Skillicorn. The Bird-Meertens formalism as a parallel model. In Software for Parallel Computation, June 1992.

    Google Scholar 

  22. G. L. Steele Jr. and W. D. Hillis. Connection machine Lisp: Fine-grained parallel symbolic processing. In ACM Conference on Lisp and Functional Programming, pages 279–297, 1986.

    Google Scholar 

  23. J.-P. Talpin and P. Jouvelot. Compiling FX on the CM-2. In Workshop on static analysis, number 724 in LNCS, 1993.

    Google Scholar 

  24. D. Turner. The semantic elegance of applicative languages. In FPCA, 1981.

    Google Scholar 

  25. P. Wadler and R. J. M. Hughes. Projections for strictness analysis. In FPCA, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1994 British Computer Society

About this chapter

Cite this chapter

Hill, J.M.D. (1994). The aim is laziness in a data-parallel language. In: O’Donnell, J.T., Hammond, K. (eds) Functional Programming, Glasgow 1993. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3236-3_7

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3236-3_7

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19879-6

  • Online ISBN: 978-1-4471-3236-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics