Title: Loop parallelization
First published: 1994
Description: Automatic Transformation of sequential program into a parallel form is a subject that presents a great intellectual challenge and promises a large practical reward. There is a tremendous investment in existing sequential programs, and scientists and engineers continue to write their application programs in sequential languages (primarily in Fortran). The demand for higher and higher speedups keeps going up.

The job of a restructuring compiler is to discover the dependence structure of a given program and transform the program in a way that is consistent with both that dependence structure and the characteristics of the given machine. Much attention in this field of research has been focused on the Fortran do loop. This is where one expects to find major chunks of computation that need to be performed repeatedly for different values of the index variable.

Many loop transformations have been designed over the years, and several of them can be found in any parallelizing compiler currently in use in industry or at a university research facility.

The aim of the Loop Transformations for Restructuring Compilers series of books is to provide a rigorous theory of loop transformations and dependence analysis. We want to develop the transformations in a consistent mathematical framework using objects like directed graphs, matrices, and linear equations. Then, the algorithms that implement the transformations can be precisely described in terms of certain abstract mathematical algorithms.

The first volume, Loop Transformations for Restructuring Compilers: The Foundations, provided the general mathematical background needed for loop transformations (including those basic mathematical algorithms), discussed data dependence, and introduced the major transformations. The current volume, Loop Parallelization, builds a detailed theory of iteration-level loop transformations based on the material developed in the previous book.

. We present a theory of loop transformations that is rigorous and yet reader-friendly; this will make it easier to learn the subject and do research in this area.
Subjects: Compilers (Computer programs), Parallel programming (Computer science)
LC classification: QA76.642 .B36 1994