Abstract
The design of a tool for partitioning and parallelizing nested loops for execution on distributed-memory multicomputers is presented. The core of the tool is a technique called grouping, which identifies appropriate loop partition patterns based on data dependencies across the iterations. The grouping technique combined with analytic results from performance modeling tools will allow certain nested loops to be partitioned systematically and automatically, without users specifying the data partitions. Grouping is based on the concept of pipelined data parallel computation, which promises to achieve a balanced computation and communication on multicomputers. The basic structure of the parallelizing tool is presented. The grouping and performance analysis techniques for pipelined data parallel computations are described. A prototype of the tool is introduced to illustrate the feasibility of the approach.