Skip to main content

HaskSkel: Algorithmic Skeletons in Haskell

  • Conference paper
Implementation of Functional Languages (IFL 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1868))

Included in the following conference series:

Abstract

This paper introduces HaskSkel: an implementation of algorithmic skeletons for the non-strict functional language Haskell. The implementation is based on the evaluation strategy mechanism for Glasgow Parallel Haskell (GpH), and has been tested in both simulated and real parallel settings. Compared with most skeleton libraries, HaskSkel has a number of novel and interesting features: (strict) skeletons have been embedded in a non-strict language; the cost models and implementation modules are written entirely using standard Haskell (and may therefore be modified or extended by the user rather than being a fixed part of the compiler); it is possible to nest skeletons (though we have not yet defined nested cost models to support this); and the library is not restricted to a single bulk data type. Finally, in contrast with most other skeletal approaches, it is possible to freely mix HaskSkel skeletons with other parallel constructs that have been introduced using standard evaluation strategies.

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. Botorog, G.H., Kuchen, H.: Efficient Parallel Programming with Algorithmic Skeletons. In: Fraigniaud, P., Mignotte, A., Bougé, L., Robert, Y. (eds.) Euro-Par 1996. LNCS, vol. 1123, pp. 718–731. Springer, Heidelberg (1996)

    Google Scholar 

  2. Botorog, G.H., Kuchen, H.: Using Algorithmic Skeletons with Dynamic Data Structures. In: Saad, Y., Yang, T., Ferreira, A., Rolim, J.D.P. (eds.) IRREGULAR 1996. LNCS, vol. 1117. Springer, Heidelberg (1996)

    Google Scholar 

  3. Bratvold, T.A.: A Skeleton-Based Parallelising Compiler for ML. In: Proc. IFL 1993 — 5th International Workshop on the Implementation of Functional Languages, Nijmegen, The Netherlands, pp. 23–33 (1993)

    Google Scholar 

  4. Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. In: Research Monographs in Parallel and Distributed Computing. The MIT Press, Cambridge (1989)

    Google Scholar 

  5. Cole, M.I.: Algorithmic Skeletons. In: Hammond, K., Michaelson, G. (eds.) Research Directions in Parallel Functional Programming, ch. 13, pp. 289–303 (September 1999)

    Google Scholar 

  6. Danelutto, M., Cosmo, R.D., Leroy, X., Pelagatti, S.: Parallel Functional Programming with Skeletons: the OcamlP3l Experiment. In: Proc. 1998 ACM Sigplan Workshop on ML, pp. 31–39 (September 1998)

    Google Scholar 

  7. Darlington, J., Field, A.J., Harrison, P.G., Kelly, P.H.J., Sharp, D.W.N., Wu, Q., While, R.L.: Parallel Programming Using Skeleton Functions. In: Reeve, M., Bode, A., Wolf, G. (eds.) PARLE 1993. LNCS, vol. 694, pp. 146–160. Springer, Heidelberg (1993)

    Google Scholar 

  8. Hall, C.V., Hammond, K., Jones, S.L.P., Wadler, P.: Type Classes in Haskell. In: Sannella, D. (ed.) ESOP 1994. LNCS, vol. 788, pp. 241–256. Springer, Heidelberg (1994)

    Google Scholar 

  9. Hamdan, M., Michaelson, G.: A Framework for Nesting Algorithmic Skeletons. In: Proc. ParCo 1999 — Conference on Parallelism (1999)

    Google Scholar 

  10. Hammond, K., Loidl, H.-W., Partridge, A.: Visualising Granularity in Parallel Programs: A Graphical Winnowing System for Haskell. In: Proc. HPFC 1995 — Conference on High Performance Functional Computing, Denver, CO, pp. 208–221 (April 1995)

    Google Scholar 

  11. Herrmann, C., Lengauer, C., Günz, R., Laitenberger, J., Schaller, C.: A Compiler for HDC. Technical Report MIP-9907, Fakultät für Mathematik und Informatik, Universität Passau (May 1999)

    Google Scholar 

  12. Kesseler, M.: Constructing Skeletons in Clean –The Bare Bones. In: Proc. PASCO 1994 -— Symposium on Parallel Symbolic Computation, Linz, Austria, pp. 182–192 (1994)

    Google Scholar 

  13. Loidl, H.-W., Morgan, R., Trinder, P.W., Poria, S., Cooper, C., Jones, S.L.P., Garigliano, R.: Parallelising a Large Functional Program Or: Keeping LOLITA Busy. In: Clack, C., Hammond, K., Davie, T. (eds.) IFL 1997. LNCS, vol. 1467, pp. 198–213. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  14. Loidl, H.-W., Trinder, P.W.: Engineering Large Parallel Functional Programs. In: Clack, C., Hammond, K., Davie, T. (eds.) IFL 1997. LNCS, vol. 1467, pp. 178–197. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  15. MIT Laboratory for Computer Science. Impala – (IMplicitly PArallel LAnguage Application Suite), http://www.csg.lcs.mit.edu/impala/

  16. Nicklisch, J., Jones, S.L.P.: An Exploration of Modular Programs. In: Proc. 1996 Glasgow Workshop on Functional Programming (October 1996)

    Google Scholar 

  17. Okasaki, C.: Edison User’s Guide. Department of Computer Science, Columbia University (May 1999), Online Document http://www.columbia.edu/~cdo/edison/

  18. Pelagatti, S.: Structured Development of Parallel Programs. Taylor and Francis, London (1998)

    Google Scholar 

  19. Jones, S.L.P.: Bulk Types with Class. In: Proc. 1996 Glasgow Workshop on Functional Programming (October 1996)

    Google Scholar 

  20. Jones, S.L.P., Hughes, J., Augustsson, L., Barton, D., Boutel, B., Burton, W., Fasel, J., Hammond, K., Hinze, R., Hudak, P., Johnsson, T., Jones, M., Launchbury, J., Meijer, E., Peterson, J., Reid, A., Runciman, C., Wadler, P.: Haskell 98: A Nonstrict, Purely Functional Language (February 1999), Electronic document available on-line at http://www.haskell.org/

  21. Jones, S.L.P., Jones, M., Meijer, E.: Type Classes: an Exploration of the Design Space. In: Proc. 1997 Haskell Workshop (May 1997)

    Google Scholar 

  22. Sipelstein, J., Blelloch, G.E.: Collection Oriented Languages. Proceedings of the IEEE 79(4) (April 1991)

    Google Scholar 

  23. Skillicorn, D.B.: Cost Modelling. In: Hammond, K., Michaelson, G. (eds.) Research Directions in Parallel Functional Programming, ch. 8, pp. 207–218 (September 1999)

    Google Scholar 

  24. Taylor, F.S.: Parallel Functional Programming by Partitioning. PhD thesis, University of London (September 1996)

    Google Scholar 

  25. Trinder, P.W., Hammond, K., Loidl, H.-W., Jones, S.L.P.: Algorithm + Strategy = Parallelism. Journal of Functional Programming 8(1), 23–60 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  26. Trinder, P.W., Hammond, K., Mattson Jr., J.S., Partridge, A.S., Peyton Jones, S.L.: GUM: A Portable Parallel Implementation of Haskell. In: Proc. PLDI 1996 — 1996 ACM Conf. on Programming Language Design and Implementation, Philadelphia, PA, pp. 78–88 (May 1996)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hammond, K., Rebón Portillo, Á.J. (2000). HaskSkel: Algorithmic Skeletons in Haskell. In: Koopman, P., Clack, C. (eds) Implementation of Functional Languages. IFL 1999. Lecture Notes in Computer Science, vol 1868. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722298_11

Download citation

  • DOI: https://doi.org/10.1007/10722298_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67864-9

  • Online ISBN: 978-3-540-44658-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics