首页> 外文会议>Euromicro International Conference on Parallel, Distributed, and Network-Based Processing >RPL: A Domain-Specific Language for Designing and Implementing Parallel C++ Applications
【24h】

RPL: A Domain-Specific Language for Designing and Implementing Parallel C++ Applications

机译:RPL:一种用于设计和实现并行C ++应用程序的领域特定语言

获取原文

摘要

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).
机译:并行执行顺序应用程序通常是一项艰巨的工作,这是因为可以并行化应用程序的许多不同方式,并且可以使用大量的编程模型(每种编程模型都有其优点和缺点)。在本文中,我们描述了一种半自动生成和评估同一应用程序的不同并行化的方法,使程序员可以找到最佳的并行化,而无需进行大量的人工代码重组。我们描述了一种新颖的高级领域特定语言,即重构模式语言(RPL),该语言用于表示应用程序的并行结构并捕获其功能外属性(例如服务时间)。然后,我们描述了一组RPL重写规则,这些规则可用于生成同一应用程序的替代但语义上等效的并行结构(并行化)。我们还根据所需的额外功能属性描述了可用于评估这些并行化的RPL Shell。最后,我们描述了一组针对OpenMP,Intel TBB和FastFlow并行编程模型的C ++重构,该重构将半自动将所需的并行化应用到应用程序的源代码,从而提供了该代码的并行版本。我们演示了如何使用RPL和重构规则来推导两个实际C ++用例(图像卷积和蚁群优化)的有效并行化。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号