Parallelizing Parallel Programs: A Dynamic Pattern Analysis for Modernization of Legacy Parallel Code

Roberto Castañeda Lozano, Murray Cole, Björn Franke

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

Abstract

Parallelization traditionally refers to the challenge of analyzing legacy sequential code, to generate equivalent, higher performing parallel code. Emerging mainstream parallelism has created a new challenge: legacy parallel code, typically hand-optimized for a particular system, becomes outdated as the hardware evolves. Modernizing such code line-by-line is not effective: instead we need to understand the program’s overall algorithmic intent, to re-express it for the new target. Re-expression can be simplified and futureproofed by coding with parallel patterns [4, 8, 9]. We address the remaining challenge of identifying the algorithm patterns in the original parallel source. We describe a novel dynamic approach to the identification of implicit algorithmic patterns. Our core principle is that the essence of a pattern is to be found in the dynamic data flows it invokes between operations and their repetition, rather than any specific source level encoding. This makes it neutral with respect to source code and hence immediately applicable to both legacy sequential and parallel code.
The high level structure of our approach is captured in Figure 1. Our LLVM pass instruments the legacy program, whose traced execution generates a dynamic dataflow graph (DDG). Our constraint-programming based pattern finding tool analyzes the DDG against a library of pattern definitions, reporting found instances back to the programmer.
Original languageEnglish
Title of host publicationPACT '20: Proceedings of the ACM International Conference on Parallel Architectures and Compilation Techniques
PublisherACM Association for Computing Machinery
Pages347-348
Number of pages2
ISBN (Print)9781450380751
DOIs
Publication statusPublished - 30 Sep 2020
Event29th International Conference on Parallel Architectures and Compilation Techniques - Virtual conference
Duration: 3 Oct 20207 Oct 2020
https://pact20.cc.gatech.edu/

Conference

Conference29th International Conference on Parallel Architectures and Compilation Techniques
Abbreviated titlePACT 2020
CityVirtual conference
Period3/10/207/10/20
Internet address

Fingerprint

Dive into the research topics of 'Parallelizing Parallel Programs: A Dynamic Pattern Analysis for Modernization of Legacy Parallel Code'. Together they form a unique fingerprint.

Cite this