当前位置: X-MOL 学术Int. J. Parallel. Program › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Refactoring GrPPI: Generic Refactoring for Generic Parallelism in C++
International Journal of Parallel Programming ( IF 0.9 ) Pub Date : 2020-07-10 , DOI: 10.1007/s10766-020-00667-x
Christopher Brown , Vladimir Janjic , Adam D. Barwell , J. Daniel Garcia , Kenneth MacKenzie

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

中文翻译:

重构 GrPPI:C++ 中通用并行的通用重构

通用可重用并行模式接口 (GrPPI) 是对不同并行模式库的非常有用的抽象,允许程序员编写通用模式并行代码,这些代码可以轻松编译到不同的后端,如 FastFlow、OpenMP、英特尔 TBB 和 C++ 线程。然而,重写遗留代码以使用 GrPPI 仍然涉及非常重要的代码转换,特别是对于不是并行专家的程序员。本文描述了软件重构以半自动地将 GrPPI 模式的实例引入到连续的 C++ 代码中,以及安全检查静态分析机制,以验证将模式引入到代码中不会引入与并发相关的错误,例如竞争条件。
更新日期:2020-07-10
down
wechat
bug