OCA - Code Advisory Tool for OpenMP Parallelization of Sequential Code

Gadi Haber, Shachaf Altman, Yosi Ben-Asher, Cfir Aguston

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Programming multicore embedded systems is a real challenge and is often realized using OpenMP that is used to parallelize sequential code Unfortunately, auto-parallelizers and modern compilers can provide only limited auto-parallelization potential for embedded code that contains use of pointers and nested conditional statements, together with complicated data and control dependencies. Nevertheless, many of these loops could have been manually parallelized using the same building blocks of loop transformations. This can be done by using the fact that the programmer knows the intended semantic of the loop and thus can modify the code, overcoming dependencies which the automatic parallelizer cannot ignore. To help developers with this parallelization effort, we introduce a new source-level advisory tool called OCA - Optimizing Code Advisor, which provides recommendations on possible loop parallelization. The recommendations are formed by constructing basic and compound loop transformations extracted from a symbolic analysis applied on the program's Abstract Syntax Tree. The OCA tool is an Eclipse plugin that provides the programmer with the needed steps on how to manually parallelize the code in order to extract maximal performance using OpenMP [10] constructs. OCA's recommendations cannot be applied automatically to refactor the code but rather to be used as guidelines on how to apply them manually as it relies on the user to handle issues that may arise from memory aliasing and memory side effects. We applied OCA recommendations on the Bzip2 [11] source code and were able to show the parallelization effectiveness of the tool.

Original languageEnglish
Title of host publicationProceedings - 2023 16th IEEE International Symposium on Embedded Multicore/Many-Core Systems-on-Chip, MCSoC 2023
Pages89-96
Number of pages8
ISBN (Electronic)9798350393613
DOIs
StatePublished - 2023
Externally publishedYes
Event16th IEEE International Symposium on Embedded Multicore/Many-Core Systems-on-Chip, MCSoC 2023 - Singapore, Singapore
Duration: 18 Dec 202321 Dec 2023

Publication series

NameProceedings - 2023 16th IEEE International Symposium on Embedded Multicore/Many-Core Systems-on-Chip, MCSoC 2023

Conference

Conference16th IEEE International Symposium on Embedded Multicore/Many-Core Systems-on-Chip, MCSoC 2023
Country/TerritorySingapore
CitySingapore
Period18/12/2321/12/23

Keywords

  • Code Advisory
  • Eclipse IDE
  • OpenMP
  • Parallelization Hints

ASJC Scopus subject areas

  • Artificial Intelligence
  • Computer Networks and Communications
  • Computer Science Applications
  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'OCA - Code Advisory Tool for OpenMP Parallelization of Sequential Code'. Together they form a unique fingerprint.

Cite this