Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.authorBrown, Christopher Mark
dc.contributor.authorJanjic, Vladimir
dc.contributor.authorBarwell, Adam David
dc.contributor.authorGarcia, Jose Daniel
dc.contributor.authorMacKenzie, K.
dc.date.accessioned2020-07-23T14:30:06Z
dc.date.available2020-07-23T14:30:06Z
dc.date.issued2020-07-10
dc.identifier.citationBrown , C M , Janjic , V , Barwell , A D , Garcia , J D & MacKenzie , K 2020 , ' Refactoring GrPPI : generic refactoring for generic parallelism in C++ ' , International Journal of Parallel Programming , vol. First Online . https://doi.org/10.1007/s10766-020-00667-xen
dc.identifier.issn0885-7458
dc.identifier.otherPURE: 267665742
dc.identifier.otherPURE UUID: 84dd2979-e2bf-456c-9991-73e3cd996a17
dc.identifier.otherScopus: 85087691354
dc.identifier.otherORCID: /0000-0003-1236-7160/work/77893761
dc.identifier.otherORCID: /0000-0001-6030-2885/work/77893908
dc.identifier.otherWOS: 000546895300001
dc.identifier.urihttps://hdl.handle.net/10023/20321
dc.descriptionFunding: EU Horizon 2020 project, TeamPlay (https://www.teamplay-xh2020.eu), Grant Number 779882, UK EPSRC Discovery, grant number EP/P020631/1, and Madrid Regional Government, CABAHLA-CM (ConvergenciA Big dAta-Hpc: de Los sensores a las Aplicaciones) Grant Number S2018/TCS-4423.en
dc.description.abstractThe Generic Reusable Parallel Pattern Interface (GrPPI) is a very useful abstraction over different parallel pattern libraries, allowing the programmer to write generic patterned parallel code that can easily be compiled to different backends such as FastFlow, OpenMP, Intel TBB and C++ threads. However, rewriting legacy code to use GrPPI still involves code transformations that can be highly non-trivial, especially for programmers who are not experts in parallelism. This paper describes software refactorings to semi-automatically introduce instances of GrPPI patterns into sequential C++ code, as well as safety checking static analysis mechanisms which verify that introducing patterns into the code does not introduce concurrency-related bugs such as race conditions. We demonstrate the refactorings and safety-checking mechanisms on four simple benchmark applications, showing that we are able to obtain, with little effort, GrPPI-based parallel versions that accomplish good speedups (comparable to those of manually-produced parallel versions) using different pattern backends.
dc.format.extent23
dc.language.isoeng
dc.relation.ispartofInternational Journal of Parallel Programmingen
dc.rightsCopyright © 2020 the Author(s). This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.en
dc.subjectRefactoringen
dc.subjectParallelismen
dc.subjectParallel patternsen
dc.subjectTBBen
dc.subjectC++en
dc.subjectGrPIen
dc.subjectC++ threadsen
dc.subjectQA75 Electronic computers. Computer scienceen
dc.subjectT-NDASen
dc.subject.lccQA75en
dc.titleRefactoring GrPPI : generic refactoring for generic parallelism in C++en
dc.typeJournal articleen
dc.contributor.sponsorEuropean Commissionen
dc.contributor.sponsorEPSRCen
dc.description.versionPublisher PDFen
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.doihttps://doi.org/10.1007/s10766-020-00667-x
dc.description.statusPeer revieweden
dc.identifier.grantnumber779882en
dc.identifier.grantnumberEP/P020631/1en


This item appears in the following Collection(s)

Show simple item record