Skip to content

Research at St Andrews

Restoration of legacy parallelism in C and C++ applications

Research output: Contribution to conferencePaper

Author(s)

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. 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, In : International Journal of Parallel Programming. First Online, 23 p.

    Research output: Contribution to journalArticle

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

  3. A trustworthy framework for resource-aware embedded programming

    Barwell, A. D. & Brown, C. M., 11 Feb 2020, (Accepted/In press) Proceedings of International Symposium on Implementation and Application of Functional Languages (IFL'19). ACM

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

  4. Reasoning about non-functional properties using compiler intrinsic function annotations

    Jadhav, S., Roth, M., Falk, H., Brown, C. M. & Barwell, A. D., 6 Nov 2019, Proceedings of the 13th Junior Researcher Workshop on Real-Time Computing. INP ENSEEIHT/IRIT, p. 25-28 4 p.

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

  5. Type-driven verification of non-functional properties

    Brown, C. M., Barwell, A. D., Marquer, Y., Minh, C. & Zendra, O., 7 Oct 2019, Proceedings of the 21st International Symposium on Principles and Practice of Programming Languages 2019 (PPDP '19). New York: ACM, p. 1-15 15 p. 6

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

ID: 269101193

Top