Show simple item record

Files in this item


Item metadata

dc.contributor.authorCastro, David
dc.contributor.authorHammond, Kevin
dc.contributor.authorSarkar, Susmit
dc.contributor.authorAlguwaifli, Yasir
dc.identifier.citationCastro , D , Hammond , K , Sarkar , S & Alguwaifli , Y 2018 , ' Automatically deriving cost models for structured parallel processes using hylomorphisms ' , Future Generation Computer Systems , vol. 79 , no. Part 2 , pp. 653-668 .
dc.identifier.otherPURE: 249964983
dc.identifier.otherPURE UUID: 68945240-1514-4e74-9ac3-d40ffbe8b587
dc.identifier.otherRIS: urn:0811986B641AAB84C3E4B0579117E446
dc.identifier.otherScopus: 85019379343
dc.identifier.otherORCID: /0000-0002-4326-4562/work/33080440
dc.identifier.otherWOS: 000418975100016
dc.identifier.otherORCID: /0000-0002-4259-9213/work/125727592
dc.descriptionThis work has been partially supported by the EU Horizon 2020 grant “RePhrase: Refactoring Parallel Heterogeneous Resource-Aware Applications - a Software Engineering Approach” (ICT-644235), by COST Action IC1202 (TACLe), supported by COST (European Cooperation on Science and Technology), and by EPSRC grant EP/M027317/1 “C33: Scalable & Verified Shared Memory via Consistency-directed Cache Coherence”.en
dc.description.abstractStructured parallelism using nested algorithmic skeletons can greatly ease the task of writing parallel software, since common, but hard-to-debug, problems such as race conditions are eliminated by design. However, choosing the best combination of algorithmic skeletons to yield good parallel speedups for a specific program on a specific parallel architecture is still a difficult problem. This paper uses the unifying notion of hylomorphisms, a general recursion pattern, to make it possible to reason about both the functional correctness properties and the extra-functional timing properties of structured parallel programs. We have previously used hylomorphisms to provide a denotational semantics for skeletons, and proved that a given parallel structure for a program satisfies functional correctness. This paper expands on this theme, providing a simple operational semantics for algorithmic skeletons and a cost semantics that can be automatically derived from that operational semantics. We prove that both semantics are sound with respect to our previously defined denotational semantics. This means that we can now automatically and statically choose a provably optimal parallel structure for a given program with respect to a cost model for a (class of) parallel architecture. By deriving an automatic amortised analysis from our cost model, we can also accurately predict parallel runtimes and speedups.
dc.relation.ispartofFuture Generation Computer Systemsen
dc.rights© 2017 Elsevier Ltd. All rights reserved. This work has been made available online in accordance with the publisher’s policies. This is the author created, accepted version manuscript following peer review and may differ slightly from the final published version. The final published version of this work is available at
dc.subjectOperational semanticsen
dc.subjectAlgorithmic skeletonsen
dc.subjectCost modelsen
dc.subjectQA75 Electronic computers. Computer scienceen
dc.titleAutomatically deriving cost models for structured parallel processes using hylomorphismsen
dc.typeJournal articleen
dc.contributor.sponsorEuropean Commissionen
dc.contributor.institutionUniversity of St Andrews. School of Computer Scienceen
dc.contributor.institutionUniversity of St Andrews. Centre for Interdisciplinary Research in Computational Algebraen
dc.description.statusPeer revieweden

This item appears in the following Collection(s)

Show simple item record