OCA – Code Advisory Tool for OpenMP Parallelization of Sequential Code

Research output: Contribution to conferencePaperpeer-review


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 too
Original languageAmerican English
StatePublished - 18 Dec 2023
Eventmcsoc 2023: 16th IEEE International Symposium on Embedded Multicore/manycore Systems-On-Chip - Singapore
Duration: 18 Dec 202321 Feb 2024
Conference number: 16


Conferencemcsoc 2023
Internet address


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

Cite this