The recent success of vector computers such as the Cray-1 and array processors such as those manufactured by Floating Point Systems has increased interest in making vector operations available to the FORTRAN programmer. The FORTRAN standards committee is currently considering a successor to FORTRAN 77, usually called FORTRAN 8x, that will permit the programmer to explicitly specify vector and array operations.Although FORTRAN 8x will make it convenient to specify explicit vector operations in new programs, it does little for existing code. In order to benefit from the power of vector hardware, existing programs will need to be rewritten in some language (presumably FORTRAN 8x) that permits the explicit specification of vector operations. One way to avoid a massive manual recoding effort is to provide a translator that discovers the parallelism implicit in a FORTRAN program and automatically rewrites that program in FORTRAN 8x.Such a translation from FORTRAN to FORTRAN 8x is not straightforward because FORTRAN DO loops are not always semantically equivalent to the corresponding FORTRAN 8x parallel operation. The semantic difference between these two constructs is precisely captured by the concept of dependence. A translation from FORTRAN to FORTRAN 8x preserves the semantics of the original program if it preserves the dependences in that program.The theoretical background is developed here for employing data dependence to convert FOR-TRAN programs to parallel form. Dependence is defined and characterized in terms of the conditions that give rise to it; accurate tests to determine dependence are presented; and transformations that use dependence to uncover additional parallelism are discussed.
An algorithm for transforming sequential programs into equivalent parallel programs is presented. The method concentrates on finding loops whose separate iterations can be run in parallel without synchronization. Although a simple version of the method can be shown to be optimal, the problem of generating optimal code when loop interchange is employed is shown to be intractable. These methods are implemented in an experimental translation system developed at Rice University.
Retrospectives provide a rare and interesting opportunity to reflect upon the past and recall (or more accurately after a couple of decades, speculate upon) our state of mind and understandings at earlier times. "Automatic Loop Interchange" was published almost 20 years ago at a midpoint in research on data dependence and program transformations. This paper pulled together the work of many predecessors [9,10,11,15] into a simple, clean theory, providing a checkpoint on earlier predictions on the power and applicability of data dependence. At the same time, the paper was published just as the field of data dependence entered a "golden age". It is our hope that this paper helped catalyze the following research into data dependence theory and applications.A 1978-79 sabbatical at IBM catalyzed our initial interest in automatic vectorization. We started development with a version of the Parafrase system built at the University of Illinois by Dave Kuck and his group (including Michael Wolfe) [9,15], but we began work on an entirely new system in 1981 to provide a better platform for our research on multilevel code generation [8] (eventually published in 1987 [3]). The new system became known as the Parallel Fortran Converter (PFC).At the time we started the PFC project, few programmers had access to vectorizing compilers that used data dependence. Vector units and vectorizing compilers were employed exclusively on expensive high-end machines or specialized array processors, which were available to only a small percentage of the general programming public. Despite this limited access, vectorizing compilers had already earned the informal nicknames "paralyzers" and "terrorizers" due to their large compile times and often less-than-optimal output.We began our effort with modest expectations. PFC was deliberately structured as a source-to-source translator, primarily because we believed the algorithms that we wanted to employ would require more compile-time than could be justified in a production compiler. We also doubted the power of data dependence, and expected that we would need to employ techniques from artificial intelligence to achieve satisfactory results.This paper marked a point in PFC's development where our early assumptions had been proved wrong. What PFC and this paper had shown was that a fairly simple set of program transformations based on a unified underlying theory could provide effective restructuring without requiring unacceptable compile times. 20 FoundationAlthough this paper is entitled "Automatic Loop Interchange", it is far broader in scope. As an introduction to interchange, the paper also covers a wide spectrum of dependence-based theory and transformations. This work is built on the efforts of many others, and we would be remiss if we did not acknowledge at least some of those efforts -acknowledging all of them would quickly blow our page limits. The earliest papers on dependence-based program transformations include papers by Lamport [10,11] and Kuck [9]. Lamport developed a form of loop inter...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.