Parallelization of while loops in nested loop programs for shared-memory multiprocessor systems

S J Geuns, M J G Bekooij, T Bijlsma, H Corporaal
2011 2011 Design, Automation & Test in Europe  
Many applications contain loops with an undetermined number of iterations. These loops have to be parallelized in order to increase the throughput when executed on an embedded multiprocessor platform. This paper presents a method to automatically extract a parallel task graph based on function level parallelism from a sequential nested loop program with while loops. In the parallelized task graph loop iterations can overlap during execution. We introduce the notion of a single assignment
more » ... e assignment section such that we can exploit single assignment to overlap iterations of the while loop during the execution of the parallel task graph. Synchronization is inserted in the parallelized task graph to ensure the same functional behavior as the sequential nested loop program. It is shown that the generated parallel task graph does not introduce deadlock. A DVB-T radio receiver where the user can switch channels after an undetermined amount of time illustrates the approach.
doi:10.1109/date.2011.5763118 dblp:conf/date/GeunsBBC11 fatcat:uuledg5shnhaxg66ovklwa74oa