Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.advisorHammond, Kevin
dc.contributor.authorCastro, David
dc.coverage.spatialxiv, 255 p.en_US
dc.date.accessioned2018-09-27T16:03:34Z
dc.date.available2018-09-27T16:03:34Z
dc.date.issued2018-06-27
dc.identifier.urihttps://hdl.handle.net/10023/16093
dc.description.abstractThis thesis deals with the important problem of parallelising sequential code. Despite the importance of parallelism in modern computing, writing parallel software still relies on many low-level and often error-prone approaches. These low-level approaches can lead to serious execution problems such as deadlocks and race conditions. Due to the non-deterministic behaviour of most parallel programs, testing parallel software can be both tedious and time-consuming. A way of providing guarantees of correctness for parallel programs would therefore provide significant benefit. Moreover, even if we ignore the problem of correctness, achieving good speedups is not straightforward, since this generally involves rewriting a program to consider a (possibly large) number of alternative parallelisations. This thesis argues that new languages and frameworks are needed. These language and frameworks must not only support high-level parallel programming constructs, but must also provide predictable cost models for these parallel constructs. Moreover, they need to be built around solid, well-understood theories that ensure that: (a) changes to the source code will not change the functional behaviour of a program, and (b) the speedup obtained by doing the necessary changes is predictable. Algorithmic skeletons are parametric implementations of common patterns of parallelism that provide good abstractions for creating new high-level languages, and also support frameworks for parallel computing that satisfy the correctness and predictability requirements that we require. This thesis presents a new type-based framework, based on the connection between structured parallelism and structured patterns of recursion, that provides parallel structures as type abstractions that can be used to statically parallelise a program. Specifically, this thesis exploits hylomorphisms as a single, unifying construct to represent the functional behaviour of parallel programs, and to perform correct code rewritings between alternative parallel implementations, represented as algorithmic skeletons. This thesis also defines a mechanism for deriving cost models for parallel constructs from a queue-based operational semantics. In this way, we can provide strong static guarantees about the correctness of a parallel program, while simultaneously achieving predictable speedups.en_US
dc.description.sponsorship“This work was supported by the University of St Andrews (School of Computer Science); by the EU FP7 grant “ParaPhrase:Parallel Patterns Adaptive Heterogeneous Multicore Systems” (n. 288570); by the EU H2020 grant “RePhrase: Refactoring Parallel Heterogeneous Resource-Aware Applications - a Software Engineering Approach” (ICT-644235), by COST Action IC1202 (TACLe), supported by COST (European Cooperation Science and Technology); and by EPSRC grant “Discovery: Pattern Discovery and Program Shaping for Manycore Systems” (EP/P020631/1)” -- Acknowledgementsen
dc.language.isoenen_US
dc.publisherUniversity of St Andrews
dc.relationDavid Castro, Kevin Hammond, and Susmit Sarkar. Farms, Pipes, Streams and Reforestation: Reasoning About Structured Parallel Processes using Types and Hylomorphisms. In Proceedings of ICFP 2016: International Conference on Functional Programming, pages 4-7, Nara, Japan, September 2016.en_US
dc.relationDavid Castro, Kevin Hammond, Susmit Sarkar, and Yasir Alguwaifli. Automatically deriving Cost Models for Structured Parallel Processes using Hylomorphisms. Future Generation Computer Systems, 2017.en_US
dc.rightsAttribution 4.0 International*
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/*
dc.subjectParallel computingen_US
dc.subjectAlgorithmic skeletonsen_US
dc.subjectStructured recursionen_US
dc.subjectHylomorphismsen_US
dc.subjectType and effect systemsen_US
dc.subjectCost modelsen_US
dc.subject.lccQA76.642C2
dc.subject.lcshParallel programs (Computer programs)en
dc.subject.lcshParallel programs (Computer programs)--Verificationen
dc.subject.lcshParallel programs (Computer programs)--Costsen
dc.titleStructured arrows : a type-based framework for structured parallelismen_US
dc.typeThesisen_US
dc.contributor.sponsorUniversity of St Andrews. School of Computer Scienceen_US
dc.contributor.sponsorSeventh Framework Programme (European Commission)en_US
dc.contributor.sponsorEuropean Unionen_US
dc.contributor.sponsorEuropean Cooperation in Science and Technology (COST)en_US
dc.contributor.sponsorEngineering and Physical Sciences Research Council (EPSRC)en_US
dc.type.qualificationlevelDoctoralen_US
dc.type.qualificationnamePhD Doctor of Philosophyen_US
dc.publisher.institutionThe University of St Andrewsen_US


The following licence files are associated with this item:

    This item appears in the following Collection(s)

    Show simple item record

    Attribution 4.0 International
    Except where otherwise noted within the work, this item's licence for re-use is described as Attribution 4.0 International