Abstract
A systematic procedure for designing pipelined data-parallel algorithms that are suitable for execution on multicomputers is introduced. This procedure concentrates on grouping loops in the original program so as to reduce the number of communicating processors, control the granularity, and increase the degree of pipelining. The procedure starts with a nested-loop program, manipulates the dependencies between the loops, and groups related loops to obtain pipelined and data-parallel operations. Using this procedure, it is possible to parallelize a nested loop automatically.