Lazy data-oriented evaluation strategies

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

This paper presents a number of flexible parallelism control mechanisms in the form of evaluation strategies for tree-like data structures implemented in Glasgow parallel Haskell. We achieve additional flexibility by using laziness and circular programs in the coordination code. Heuristics-based parameter selection is employed to auto-tune these strategies for improved performance on a sharedmemory machine without programmer-specified parameters. In particular for unbalanced trees we demonstrate improved performance on a state-of-the-art multi-core server: giving a speedup of up to 37.5 on 48 cores for a constructed test program, and up to 15 for two other non-trivial applications using these strategies, a Barnes-Hut implementation of the n-body problem and a sparse matrix multiplication implementation. Copyright is held by the owner/author(s).

Original languageEnglish
Title of host publicationProceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP
PublisherAssociation for Computing Machinery
Pages63-74
Number of pages12
ISBN (Print)9781450330404
DOIs
Publication statusPublished - 1 Jan 2014
Event3rd ACM SIGPLAN Workshop on Functional High-Performance Computing - Gothenburg, United Kingdom
Duration: 4 Sep 20144 Sep 2014

Conference

Conference3rd ACM SIGPLAN Workshop on Functional High-Performance Computing
Abbreviated titleFHPC 2014
CountryUnited Kingdom
CityGothenburg
Period4/09/144/09/14

Keywords

  • Dynamic parallelism control
  • Parallel Haskell
  • Quadtrees

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Lazy data-oriented evaluation strategies'. Together they form a unique fingerprint.

  • Cite this

    Totoo, P., & Loidl, H. W. (2014). Lazy data-oriented evaluation strategies. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP (pp. 63-74). Association for Computing Machinery. https://doi.org/10.1145/2636228.2636234