Automatic task-based parallelization of C++ applications by source-to-source transformations

05/22/2021
by   Garip Kusoglu, et al.
0

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 standard. It is compiler-independent and can rely on external well-optimized OpenMP libraries. Finally, we provide preliminary performance results that illustrate the potential of our method.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/27/2020

ComPar: Optimized Multi-Compiler for Automatic OpenMP S2S Parallelization

Parallelization schemes are essential in order to exploit the full benef...
research
08/30/2023

Specx: a C++ task-based runtime system for heterogeneous distributed architectures

Parallelization is needed everywhere, from laptops and mobile phones to ...
research
11/30/2022

A comparison between Automatically versus Manually Parallelized NAS Benchmarks

We compare automatically and manually parallelized NAS Benchmarks in ord...
research
05/16/2023

Advising OpenMP Parallelization via a Graph-Based Approach with Transformers

There is an ever-present need for shared memory parallelization schemes ...
research
04/27/2022

Learning to Parallelize in a Shared-Memory Environment with Transformers

In past years, the world has switched to many-core and multi-core shared...
research
04/01/2019

Modular Synthesis of Divide-and-Conquer Parallelism for Nested Loops (Extended Version)

We propose a methodology for automatic generation of divide-and-conquer ...
research
05/10/2021

GSPMD: General and Scalable Parallelization for ML Computation Graphs

We present GSPMD, an automatic, compiler-based parallelization system fo...

Please sign up or login with your details

Forgot password? Click here to reset