Skip to content

Research at St Andrews

Restoration of legacy parallelism in C and C++ applications

Research output: Contribution to conferencePaperpeer-review

Author(s)

Christopher Mark Brown, Adam David Barwell, Vladimir Janjic

School/Research organisations

Abstract

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

Details

Original languageEnglish
Publication statusAccepted/In press - 1 Jul 2020
Event13th International Symposium on High-Level Parallel Programming and Applications (HLPP 2020) Porto, Portugal July 9-10, 2020 -
Duration: 9 Jul 202010 Jul 2020
Conference number: 13
https://hlpp2020.dcc.fc.up.pt/

Conference

Conference13th International Symposium on High-Level Parallel Programming and Applications (HLPP 2020) Porto, Portugal July 9-10, 2020
Abbreviated titleHLPP 2020
Period9/07/2010/07/20
Internet address

    Research areas

  • Parallel patterns, Restoration, pthreads, Program transformation, Code analysis

Discover related content
Find related publications, people, projects and more using interactive charts.

View graph of relations

Related by author

  1. Proving renaming for Haskell via dependent types: a case-study in refactoring soundness

    Barwell, A. D., Brown, C. M. & Sarkar, S., 18 Jul 2021, 8th International Workshop on Rewriting Techniques for Program Transformations and Evaluation (WPTE 2021). p. 1-10 10 p.

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

  2. Restoration of legacy parallelism: transforming pthreads into farm and pipeline patterns

    Janjic, V., Brown, C. M. & Barwell, A., 11 Jun 2021, In: International Journal of Parallel Programming. First Online, 25 p.

    Research output: Contribution to journalArticlepeer-review

  3. Programming heterogeneous parallel machines using refactoring and Monte-Carlo tree search

    Brown, C. M., Janjic, V., Goli, M. & McCall, J., Aug 2020, In: International Journal of Parallel Programming. 48, 4, p. 583–602 20 p.

    Research output: Contribution to journalArticlepeer-review

  4. Refactoring GrPPI: generic refactoring for generic parallelism in C++

    Brown, C. M., Janjic, V., Barwell, A. D., Garcia, J. D. & MacKenzie, K., 10 Jul 2020, (E-pub ahead of print) In: International Journal of Parallel Programming. First Online, 23 p.

    Research output: Contribution to journalArticlepeer-review

  5. A hybrid approach to parallel pattern discovery in C++

    Brown, C. M., Janjic, V., Barwell, A. D., Thomson, J. D., Castañeda Lozano, R., Cole, M., Franke, B., Garcia-Sanchez, J. D., Del Rio Astorga, D. & MacKenzie, K., 14 May 2020, 2020 28th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP). IEEE Computer Society, 5 p. 9092377. (Proceedings - Euromicro Workshop on Parallel and Distributed Processing).

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

ID: 269101193

Top