Restoration of legacy parallelism in C and C++ applications
MetadataShow full item record
Parallel patterns are a high-level programming paradigm that enables non-experts in parallelism to develop structured parallel programs that are maintainable, adaptive, and portable whilst achieving good performance on a variety of parallel systems. However, there still exists a large base of legacy-parallel code developed using ad-hoc methods and incorporating low-level parallel/concurrency libraries such as pthreads without any parallel patterns in the fundamental design. This code would benefit from being restructured and rewritten into pattern-based code. However, the process of rewriting the code is laborious and error-prone, due to typical concurrency and pthreading code being closely intertwined throughout the business logic of the program. In this paper, we present a new software restoration methodology, to transform legacy-parallel programs implemented using e.g. pthreads into structured patterned equivalents. We demonstrate our restoration technique on a number of benchmarks, allowing the introduction of patterned parallelism in the resulting code; we record improvements in cyclomatic complexity and speedups.
Brown , C M , Barwell , A D & Janjic , V 2020 , ' Restoration of legacy parallelism in C and C++ applications ' , Paper presented at 13th International Symposium on High-Level Parallel Programming and Applications (HLPP 2020) Porto, Portugal July 9-10, 2020 , 9/07/20 - 10/07/20 .conference
Copyright © 2020 the Author(s). This work has been made available online in accordance with publisher policies or with permission. Permission for further reuse of this content should be sought from the publisher or the rights holder. This is the author created accepted manuscript following peer review and may differ slightly from the final published version.
Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.