Schedule-Aware Loop Parallelization for Embedded MPSoCs by Exploiting Parallel Slack

Miguel Angel Aguilar1,a, Rainer Leupers1,b, Gerd Ascheid1,c, Nikolaos Kavvadias2,d and Liam Fitzpatrick2,e
1Institute for Communication Technologies and Embedded Systems, RWTH Aachen University, Germany.
aaguilar@ice.rwth-aachen.de
bleupers@ice.rwth-aachen.de
cascheid@ice.rwth-aachen.de
2Silexica Software Solutions GmbH, Germany.
dkavvadias@silexica.com
efitzpatrick@silexica.com

ABSTRACT


MPSoC programming is still a challenging task, where several aspects have to be taken into account to achieve a profitable parallel execution. Selecting a proper scheduling policy is an aspect that has a major impact on the performance. OpenMP is an example of a programming paradigm that allows to specify the scheduling policy on a per loop basis. However, choosing the best scheduling policy and the corresponding parameters is not a trivial task. In fact, there is already a large amount of software parallelized with OpenMP, where the scheduling policy is not explicitly specified. Then, the scheduling decision is left to the default runtime, which in most of the cases does not yield the best performance. In this paper, we present a scheduleaware optimization approach enabled by exploiting the parallel slack existing in loops parallelized with OpenMP. Results on an embedded multicore device, show that the performance achieved by OpenMP loops optimized with our approach outperform by up to 93%, the performance achieved by the original OpenMP loops, where the scheduling policy is not specified.



Full Text (PDF)