Automatic task-based parallelization of C++ applications by source-to-source transformations
Garip Kusoglu, Berenger Bramas, Stephane Genaud

TL;DR
This paper introduces a compiler-independent, source-to-source transformation approach that automatically converts sequential C++ code into task-based parallel code using annotations, enhancing parallelization without requiring expert knowledge.
Contribution
The authors propose a novel method to automatically parallelize C++ applications by source-to-source transformations with annotations, compatible with OpenMP 4.0, and demonstrate its potential through preliminary results.
Findings
Method can generate task-based parallel code from sequential C++.
Approach is compatible with OpenMP 4.0 and compiler-independent.
Preliminary results show promising performance improvements.
Abstract
Currently, multi/many-core CPUs are considered standard in most types of computers including, mobile phones, PCs or supercomputers. However, the parallelization of applications as well as refactoring/design of applications for efficient hardware usage remains restricted to experts who have advanced technical knowledge and who can invest time tuning their software. In this context, the compilation community has proposed different methods for automatic parallelization, but their focus is traditionally on loops and nested loops with the support of polyhedral techniques. In this study, we propose a new approach to transform sequential C++ source code into a task-based parallel one by inserting annotations. We explain the different mechanisms we used to create tasks at each function/method call, and how we can limit the number of tasks. Our method can be implemented on top of the OpenMP 4.0…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Software System Performance and Reliability
