Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.authorBarwell, Adam David
dc.contributor.authorHammond, Kevin
dc.date.accessioned2019-01-09T11:30:04Z
dc.date.available2019-01-09T11:30:04Z
dc.date.issued2017-09-07
dc.identifier257273951
dc.identifierd1874b15-ff8d-448b-ac62-9fbc117b122a
dc.identifier85030991040
dc.identifier000426954500004
dc.identifier.citationBarwell , A D & Hammond , K 2017 , In search of a map : using program slicing to discover potential parallelism in recursive functions . in Proceedings of the 6th ACM SIGPLAN International Workshop on Functional High-Performance Computing (FHPC 2017) . ACM , New York , pp. 30-41 , FHPC 2017 Workshop on Functional High-Performance Computing , Oxford , United Kingdom , 7/09/17 . https://doi.org/10.1145/3122948.3122951en
dc.identifier.citationworkshopen
dc.identifier.isbn9781450351812
dc.identifier.otherORCID: /0000-0002-4326-4562/work/52572462
dc.identifier.otherORCID: /0000-0003-1236-7160/work/57821936
dc.identifier.urihttps://hdl.handle.net/10023/16813
dc.descriptionFunding: EU FP7 grant “Parallel Patterns for Adaptive Heterogeneous Multicore Systems” (ICT-288570), by the EU H2020 grant “RePhrase: Refactoring Parallel Het- erogeneous Resource-Aware Applications – a Software Engineering Approach” (ICT-644235), by COST Action IC1202 (“Timing Analysis on Code-Level”), by the EPSRC grant “Discovery: Pattern Discovery and Program Shaping for Manycore Systems” (EP/P020631/1), and by Scottish Enterprise grant PS7305CA44.en
dc.description.abstractRecursion schemes, such as the well-known map, can be used as loci of potential parallelism, where schemes are replaced with an equivalent parallel implementation. This paper formalises a novel technique, using program slicing, that automatically and statically identifies computations in recursive functions that can be lifted out of the function and then potentially performed in parallel. We define a new program slicing algorithm, build a prototype implementation, and demonstrate its use on 12 Haskell examples, including benchmarks from the NoFib suite and functions from the standard Haskell Prelude. In all cases, we obtain the expected results in terms of finding potential parallelism. Moreover, we have tested our prototype against synthetic benchmarks, and found that our prototype has quadratic time complexity. For the NoFib benchmark examples we demonstrate that relative parallel speedups can be obtained (up to 32.93x the sequential performance on 56 hyperthreaded cores).
dc.format.extent670278
dc.language.isoeng
dc.publisherACM
dc.relation.ispartofProceedings of the 6th ACM SIGPLAN International Workshop on Functional High-Performance Computing (FHPC 2017)en
dc.subjectProgram slicingen
dc.subjectRecursion schemesen
dc.subjectPatten discoveryen
dc.subjectParallelismen
dc.subjectQA76 Computer softwareen
dc.subjectT Technologyen
dc.subjectNDASen
dc.subject.lccQA76en
dc.subject.lccTen
dc.titleIn search of a map : using program slicing to discover potential parallelism in recursive functionsen
dc.typeConference itemen
dc.contributor.sponsorEuropean Commissionen
dc.contributor.sponsorEuropean Commissionen
dc.contributor.sponsorEuropean Commissionen
dc.contributor.sponsorEPSRCen
dc.contributor.institutionUniversity of St Andrews. School of Computer Scienceen
dc.contributor.institutionUniversity of St Andrews. Centre for Interdisciplinary Research in Computational Algebraen
dc.identifier.doi10.1145/3122948.3122951
dc.identifier.grantnumberFP7-ICT-2011-7en
dc.identifier.grantnumberFP&-ICT-2011-7en
dc.identifier.grantnumber644235en
dc.identifier.grantnumberEP/P020631/1en


This item appears in the following Collection(s)

Show simple item record