Loop dissevering: a technique for temporally partitioning loops in dynamically reconfigurable computing platforms

J.M.P. Cardoso
Proceedings International Parallel and Distributed Processing Symposium  
This paper presents a technique, called loop dissevering, to temporally partitioning any type of loop presented in programming languages. The technique can be used in the presence of complex loops that oversize the physically available hardware resources. Unlike loop fission or distribution, the technique can be applied to all types of loops and it is not constrained by loop dependences. Thus, the technique guarantees the compilation of complex loops that otherwise cannot be mapped to the
more » ... reconfigurable computing architecture. Moreover, the technique only needs to communicate scalar variables between temporal partitions (configurations) and does not need auxiliary array variables used for scalar expansion when applying loop distribution. We show results of applying the technique when compiling C programs to the PACT eXtreme Processing Platform (XPP) and to a hypothetical version with faster switching between contexts. We show that the technique leads to implementations using fewer resources and might lead to performance improvements when it is possible to overlap some of the execution stages (e.g., fetch, configure, and compute). As performance is concerned, the technique is as most efficient as fast is the reconfiguration time.
doi:10.1109/ipdps.2003.1213335 dblp:conf/ipps/Cardoso03 fatcat:ol66fnydxrfbndnwrb7ilbsiom