Skip to content

Research at St Andrews

Engineering Parallel Symbolic Programs in GPH

Research output: Contribution to journalArticle

Author(s)

H-W Loidl, PW Trinder, E Barry, Kevin Hammond, SB Junaidu, SL Peyton Jones

School/Research organisations

Abstract

We investigate the claim that functional languages offer low-cost parallelism in the context of symbolic programs on modest parallel architectures. In our investigation we present the first comparative study of the construction of large applications in a parallel functional language, in our case in Glasgow Parallel Haskell (GPH). The applications cover a range of application areas, use several parallel programming paradigms, and are measured on two very different parallel architectures.

On the applications level the most significant result is that we are able to achieve modest wall-clock speedups (between factors of 2 and 10) over the optimised sequential versions for all but one of the programs. Speedups are obtained even for programs that were not written with the intention of being parallelised, These gains are achieved with a relatively small programmer-effort. One reason for the relative ease of parallelisation is the use of evaluation strategies, a new parallel programming technique that separates the algorithm from the co-ordination of parallel behaviour.

On the language level we show that the combination of lazy and parallel evaluation is useful for achieving a high level of abstraction. In particular we can describe top-level parallelism, and also preserve module abstraction by describing parallelism over the data structures provided at the module interface ('data-oriented parallelism'). Furthermore, we find that the determinism of the language is helpful, as is the largely implicit nature of parallelism in GPH. Copyright (C) 1999 John Wiley & Sons, Ltd.

Close

Details

Original languageEnglish
Pages (from-to)701-752
Number of pages52
JournalConcurrency and Computation : Practice and Experience
Volume11
Issue number12
StatePublished - Oct 1999

    Research areas

  • SYSTEM

Discover related content
Find related publications, people, projects and more using interactive charts.

View graph of relations

Related by author

  1. Automatically deriving cost models for structured parallel processes using hylomorphisms

    Castro, D., Hammond, K., Sarkar, S. & Alguwaifli, Y. Feb 2018 In : Future Generation Computer Systems. 79, Part 2, p. 653-668

    Research output: Contribution to journalArticle

  2. The Missing Link! A new skeleton for evolutionary multi-agent systems in Erlang

    Stypka, J., Turek, W., Byrski, A., Kisiel-Dorohinicki, M., Barwell, A. D., Brown, C. M., Hammond, K. & Janjic, V. Feb 2018 In : International Journal of Parallel Programming. 46, 1, p. 4-22 19 p.

    Research output: Contribution to journalArticle

  3. Proof-relevant Horn clauses for dependent type inference and term synthesis

    Farka, F., Komendantskya, E. & Hammond, K. 2018 In : Theory and Practice of Logic Programming. 18, 3-4, p. 484-501

    Research output: Contribution to journalArticle

  4. Type-based cost analysis for lazy functional languages

    Jost, S., Vasconcelos, P., Florido, M. & Hammond, K. Jun 2017 In : Journal of Automated Reasoning. 59, 1, p. 87-120 34 p.

    Research output: Contribution to journalArticle

Related by journal

  1. HPC-GAP: engineering a 21st-century High-Performance Computer algebra system

    Behrends, R., Hammond, K., Janjic, V., Konovalov, A., Linton, S. A., Loidl, H-W., Maier, P. & Trinder, P. 10 Sep 2016 In : Concurrency and Computation : Practice and Experience. 28, 13, p. 3606-3636 33 p.

    Research output: Contribution to journalArticle

  2. Towards an autonomous decentralised orchestration system

    Jaradat, W., Dearle, A. & Barker, A. 10 Aug 2016 In : Concurrency and Computation : Practice and Experience. 28, 11, p. 3164-3179

    Research output: Contribution to journalArticle

  3. Resource Analyses for Parallel and Distributed Coordination

    Trinder, P., Cole, M., Hammond, K., Loidl, H-W. & Michaelson, G. Mar 2013 In : Concurrency and Computation : Practice and Experience. 25, 3, p. 309-348 40 p.

    Research output: Contribution to journalArticle

ID: 103958