RPL: a domain-specific language for designing and implementing parallel C++ applications

Vladimir Janjic, Christopher Mark Brown, Kenneth William MacKenzie, Kevin Hammond, Marco Danelutto, Marco Aldinucci, Daniel J Garcia

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Parallelising sequential applications is usually a very hard job, due to many different ways in which an application can be parallelised and a large number of programming models (each with its own advantages and disadvantages) that can be used. In this paper, we describe a method to semi-automatically generate and evaluate different parallelisations of the same application, allowing programmers to find the best parallelisation without significant manual reengineering of the code. We describe a novel, high-level domain-specific language, Refactoring Pattern Language (RPL), that is used to represent the parallel structure of an application and to capture its extra-functional properties (such as service time). We then describe a set of RPL rewrite rules that can be used to generate alternative, but semantically equivalent, parallel structures (parallelisations) of the same application. We also describe the RPL Shell that can be used to evaluate these parallelisations, in terms of the desired extra-functional properties. Finally, we describe a set of C++ refactorings, targeting OpenMP, Intel TBB and FastFlow parallel programming models, that semi-automatically apply the desired parallelisation to the application's source code, therefore giving a parallel version of the code. We demonstrate how the RPL and the refactoring rules can be used to derive efficient parallelisations of two realistic C++ use cases (Image Convolution and Ant Colony Optimisation).
Original languageEnglish
Title of host publication2016 24th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP)
EditorsYiannis Cotronis, Masoud Daneshtalab, George Angelos Papadopoulos
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages288-295
ISBN (Electronic)9781467387767
DOIs
Publication statusPublished - 4 Apr 2016
EventEuromicro International Conference on Parallel, Distributed, and Network-Based Processing - Aquila Atlantis Hotel, Heraklion, Crete, Greece
Duration: 17 Feb 201619 Feb 2016
Conference number: 24
http://www.pdp2016.org/index.html

Publication series

NameEuromicro Workshop on Parallel and Distributed Processing
ISSN (Electronic)2377-5750

Conference

ConferenceEuromicro International Conference on Parallel, Distributed, and Network-Based Processing
Abbreviated titlePDP
Country/TerritoryGreece
CityHeraklion, Crete
Period17/02/1619/02/16
Internet address

Keywords

  • Algorithmic skeletons
  • Design patterns
  • Domain specific language
  • Parallelism
  • Performance
  • Structured parallel programming

Fingerprint

Dive into the research topics of 'RPL: a domain-specific language for designing and implementing parallel C++ applications'. Together they form a unique fingerprint.

Cite this