Skip to main content

Engineering large parallel functional programs

  • Conference paper
  • First Online:

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

Abstract

The design and implementation of useful programming languages, whether sequential or parallel, should be driven by large, realistic applications. In constructing several medium- and large-scale programs in Glasgow Parallel Haskell, GpH, a parallel extension of Haskell, the group at Glasgow has investigated several important engineering issues:

  • Real Application Parallelism. The programs achieve good wall-clock speedups and acceptable scale-up on both a shared-memory and a distributed memory machine. The programs typify a number of application areas and use a number of different parallel paradigms, e.g. pipelining or divide- and-conquer, often combining several paradigms in a single program.

  • Language Issues. Although the largely implicit parallelism in GpH is a satisfactory programming model in general the base constructs for introducing and controlling parallelism tend to obfuscate the semantics of large programs. As a result we developed evaluation strategies, a more abstract, and systematic mechanism for introducing and controlling parallelism.

  • Engineering Environment. The development and performance tuning of these programs emphasised the importance of an integrated engineering environment. In the process we have refined components of this environment like the simulator, the runtime system, and the profiling tools.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. Hammond, H-W. Loidl, and A. Partridge. Visualising Granularity in Parallel Programs: A Graphical Winnowing System for Haskell. In HPFC'95 — High Performance Functional Computing, pp. 208–221, Denver, CO, Apr. 10–12, 1995.

    Google Scholar 

  2. K. Hammond, H-W. Loidl, and P.W. Trinder. Parallel Cost Centre Profiling. In Glasgow Workshop on Functional Programming, Ullapool, Scotland, Sep. 15–17, 1997.

    Google Scholar 

  3. P.H. Hartel, R.F.H. Hofman, K.G. Langendoen, H.L. Muller, W.G. Vree, and L.O. Hertzberger. A Toolkit for Parallel Functional Programming. Concurrency — Practice and Experience, 7(8): 765–793, Dec. 1995.

    Google Scholar 

  4. R.J.M. Hughes. Why Functional Programming Matters. The Computer Journal, 32(2): 98–107, Apr. 1989.

    Article  Google Scholar 

  5. M. Lauer. Computing by Homomorphic Images, pp. 139–168. In Computer Algebra — Symbolic and Algebraic Computation. Springer-Verlag, 1982.

    Google Scholar 

  6. J. D. Lipson. Chinese Remainder and Interpolation Algorithms. In SYMSAM, pp. 372–391, 1971.

    Google Scholar 

  7. H-W. Loidl, R. Morgan, P.W. Trinder, S. Poria, C. Cooper, S.L. Peyton Jones, and R. Garigliano. Parallelising a Large Functional Program; Or: Keeping LOLITA Busy. In IFL'97 — Intl. Workshop on the Implementation of Functional Languages, Univ. of St. Andrews, Scotland, Sep. 10–12, 1997.

    Google Scholar 

  8. H-W. Loidl. Granularity in Large-Scale Parallel Functional Programming. PhD thesis, Dept. of Computing Science, Univ. of Glasgow, Mar. 1998.

    Google Scholar 

  9. H-W. Loidl. LinSolv: a Case Study in Strategic Parallelism. In Glasgow Workshop on Functional Programming, Ullapool, Scotland, Sep. 15–17, 1997.

    Google Scholar 

  10. E. Mohr, D.A. Kranz, and R.H. Halstead Jr. Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs. IEEE Transactions on Parallel and Distributed Systems, 2(3): 264–280, Jul. 1991.

    Article  Google Scholar 

  11. A.P. Poulovassilis and C. Small. A Domain-Theoretic Approach to Logic and Functional Databases. In VLDB'93 — Intl. Conf. on Very Large Databases, pp. 415–426, 1993.

    Google Scholar 

  12. P. Roe. Parallel Programming using Functional Languages. PhD thesis, Dept. of Computing Science, Univ. of Glasgow, Feb. 1991.

    Google Scholar 

  13. C. Runciman and D. Wakeling. Profiling Parallel Functional Computations (without Parallel Machines). In Glasgow Workshop on Functional Programming, Workshops in Computing, pp. 236–251, Ayr, Scotland, Jul. 5–7, 1993. Springer-Verlag.

    Google Scholar 

  14. P.M. Sansom and S.L. Peyton Jones. Formally based profiling for higher-order functional languages. ACM Transactions on Programming Languages and Systems, 19(2): 334–385, Mar. 1997.

    Article  Google Scholar 

  15. P.W. Trinder, K. Hammond, H-W. Loidl, and S.L. Peyton Jones. Algorithm + Strategy = Parallelism. Journal of Functional Programming, 8(1), Jan. 1998.

    Google Scholar 

  16. P. Trinder, K. Hammond, H-W. Loidl, S.L. Peyton Jones, and J. Wu. A Case Study of Data-intensive Programs in Parallel Haskell. In Glasgow Workshop on Functional Programming, Ullapool, Scotland, Jul. 8–10, 1996.

    Google Scholar 

  17. P. Trinder, K. Hammond, J.S. Mattson Jr., A.S Partridge, and S.L. Peyton Jones. GUM: a Portable Parallel implementation of Haskell. In PLDI'96 — Programming Languages Design and Implementation, pp. 79–88, Philadelphia, PA, May 1996.

    Google Scholar 

  18. J. Wu and L. Harbird. A Functional Database System for Road Accident Analysis. Advances in Engineering Software, 26(1): 29–43, 1996.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Chris Clack Kevin Hammond Tony Davie

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Loidl, HW., Trinder, P. (1998). Engineering large parallel functional programs. In: Clack, C., Hammond, K., Davie, T. (eds) Implementation of Functional Languages. IFL 1997. Lecture Notes in Computer Science, vol 1467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055431

Download citation

  • DOI: https://doi.org/10.1007/BFb0055431

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-68528-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics