Back to results

University of Cambridge

Exploiting heterogeneous parallelism in software and hardware

Abstract

dc:description.abstract

Modern computer hardware is becoming increasingly diverse, necessitating the consideration of heterogeneous parallelism. This means dividing algorithms into tasks running simultaneously which are not all identical, and may run on non-identical hardware. This has clear advantages, but has many issues, particularly in software development. A heterogeneous program is often directly implemented as a series of communicating sequential programs, but I argue that this approach is limiting and unhelpful. It leads to early and fixed decomposition of the program by the designer which then limits flexibility if this decomposition is later found to be sub-optimal. This also hurts portability; migrating to a system with different hardware may require a new parallelisation strategy which therefore means a complete reimplementation of all the synchronisation and communication in the program. My thesis is that heterogeneous parallelism is a powerful technique for generating high performance software on modern and future hardware, but that exploiting it practically requires a new optimisation paradigm. I present my novel design for an optimisation and parallelisation framework based on a guided transformation of a functional specification program into an efficient and optimised parallel implementation. I implement this in a tool called DKAR and show it is practical for case studies on the Loki architecture, a representative many-core architecture that I helped fabricate. Software developed by DKAR is competitive with hand generated code, despite a principled, error-free, and flexible development process. These transformations can make substantial changes to the specification, including true algorithmic transformation. I argue this represents the first practical formalisation of the notion of program optimisation and parallelisation, with potential applications in better defining existing algorithms in terms of transformation of a specification, as well as potentially discovering new algorithms with search techniques. Crucially, the faster development process with DKAR allows ideas to be explored rapidly compared with existing development methodologies, allowing more ideas to be tried, and providing flexibility in the face of changing platforms or requirements.

Degree

thesis:*
Name dc:type.qualificationname
Doctor of Philosophy (PhD)
Level dc:type.qualificationlevel
Doctoral
Grantor dc:publisher.institution
University of Cambridge
Year dc:date.issued
2022

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Chadwick, Alexandra
Advisor dc:contributor.advisor
  • Mullins, Robert

Subjects

dc:subject × 5

Rights

dc:rights
Language dc:language
eng

Identifiers

dc:identifier.*
Author Identifier
0000-0003-4091-5355
OAI identifier oai:identifier
oai:www.repository.cam.ac.uk:1810/390136

Chain of custody

source
Harvested from
Cambridge University
Base URL
api.repository.cam.ac.uk/server/oai/request
Last updated
2026-07-22
Source record
OAI-PMH GetRecord
citation

Chadwick, Alexandra. Exploiting heterogeneous parallelism in software and hardware. Doctoral thesis, University of Cambridge, 2022. https://doi.org/10.17863/CAM.121792