The Static Parallelization of Loops and Recursions

  • Authors:
  • Christian Lengauer;Sergei Gorlatch;Christoph Herrmann

  • Affiliations:
  • lengauer@fmi.uni-passau.de;gorlatch@fmi.uni-passau.de;herrmann@fmi.uni-passau.de

  • Venue:
  • The Journal of Supercomputing - Special issue: high performance computing systems
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

We demonstrate approaches to the static parallelization of loops andrecursions on the example of the polynomial product. Phrased as a loop nest,the polynomial product can be parallelized automatically by applying aspace-time mapping technique based on linear algebra and linear programming.One can choose a parallel program that is optimal with respect to someobjective function like the number of execution steps, processors, channels,etc. However,at best,linear execution time complexity can be atained.Through phrasing the polynomial product as a divide-and-conquer recursion,one can obtain a parallel program with sublinear execution time. In thiscase, the target program is not derived by an automatic search but given asa program skeleton, which can be deduced by a sequence of equational programtransformations. We discuss the use of such skeletons, compare and assessthe models in which loops and divide-and-conquer resursions are parallelizedand comment on the performance properties of the resulting parallel implementations.