This is a limited proof of concept to search for research data, not a production system.

Search the MIT Libraries

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

Type Dataset Vladimir Janjic, Christopher Brown, Kenneth Mackenzie, Kevin Hammond, Marco Danelutto, Marco Aldinucci, Jose Daniel Garcia (2016): RPL: a domain-specific language for designing and implementing parallel C++ applications. Zenodo. Dataset. https://zenodo.org/record/164832

Authors: Vladimir Janjic (University of St Andrews) ; Christopher Brown (University of St Andrews) ; Kenneth Mackenzie (University of St Andrews) ; Kevin Hammond (University of St Andrews) ; Marco Danelutto (University of Pisa) ; Marco Aldinucci (University of Torino) ; Jose Daniel Garcia (University Carlos III Madrid) ;

Links

Summary

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).

More information

  • DOI: 10.5281/zenodo.164832

Subjects

  • Algorithmic skeletons, Design patterns, Domain Specific Laguage, Parallelism, Performance, Structured parallel programming

Dates

  • Publication date: 2016
  • Issued: November 04, 2016

Rights


Much of the data past this point we don't have good examples of yet. Please share in #rdi slack if you have good examples for anything that appears below. Thanks!

Funding Information

AwardnumberAwarduriFunderidentifierFunderidentifiertypeFundername
644235info:eu-repo/grantAgreement/EC/H2020/644235/10.13039/100010661Crossref Funder IDEuropean Commission
288570info:eu-repo/grantAgreement/EC/FP7/288570/10.13039/100011102Crossref Funder IDEuropean Commission

Format

electronic resource

Relateditems

DescriptionItem typeRelationshipUri
IsPartOfhttps://zenodo.org/communities/ecfunded
IsPartOfhttps://zenodo.org/communities/zenodo