"A Study of Software Pipelining for Multi-Dimensional Problems"

(by R. J. Bailey, D. C. Defoe, R. H. Halverson, N. L. Passos, and R. P. Simpson) in the Proceedings of the 13th International Conference on Parallel and Distributed Computing Systems, Las Vegas, NV, August, 2000, pp. 426-431.



  Computational performance of multi-dimensional applications, such as image processing and fluid dynamics, is highly dependent on the parallelism embedded in nested loops found in the software implementation. Software pipeline is a class of compiler optimization techniques which changes the execution order of some or all of the operations in the loop body to allow them to be executed in parallel. This optimization is usually processed in a resource-constrained environment. Software pipeline techniques for multidimensional applications can be roughly divided into two groups. One focused on optimizing the innermost loop body, while another group attempts to exploit the parallelism across the loop dimensions. This paper presents a comparative study of these two groups of techniques through two methods representative of those classes, Iterative Modulo Scheduling and Push-up Scheduling.


[ Published listings ] [ Top ]