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.identifier267665742
dc.identifier84dd2979-e2bf-456c-9991-73e3cd996a17
dc.identifier85087691354
dc.identifier000546895300001
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.otherORCID: /0000-0003-1236-7160/work/77893761
dc.identifier.otherORCID: /0000-0001-6030-2885/work/77893908
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.format.extent488110
dc.language.isoeng
dc.relation.ispartofInternational Journal of Parallel Programmingen
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.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.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