TY - GEN
T1 - OCA - Code Advisory Tool for OpenMP Parallelization of Sequential Code
AU - Haber, Gadi
AU - Altman, Shachaf
AU - Ben-Asher, Yosi
AU - Aguston, Cfir
N1 - Publisher Copyright:
© 2023 IEEE.
PY - 2023
Y1 - 2023
N2 - 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.
AB - 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.
KW - Code Advisory
KW - Eclipse IDE
KW - OpenMP
KW - Parallelization Hints
UR - http://www.scopus.com/inward/record.url?scp=85184662787&partnerID=8YFLogxK
U2 - 10.1109/MCSoC60832.2023.00021
DO - 10.1109/MCSoC60832.2023.00021
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:85184662787
T3 - Proceedings - 2023 16th IEEE International Symposium on Embedded Multicore/Many-Core Systems-on-Chip, MCSoC 2023
SP - 89
EP - 96
BT - Proceedings - 2023 16th IEEE International Symposium on Embedded Multicore/Many-Core Systems-on-Chip, MCSoC 2023
T2 - 16th IEEE International Symposium on Embedded Multicore/Many-Core Systems-on-Chip, MCSoC 2023
Y2 - 18 December 2023 through 21 December 2023
ER -