Browse Prior Art Database

Programming Environments for Supercomputers

IP.com Disclosure Number: IPCOM000128283D
Original Publication Date: 1985-Dec-31
Included in the Prior Art Database: 2005-Sep-15
Document File: 10 page(s) / 37K

Publishing Venue

Software Patent Institute

Related People

Randy Allen: AUTHOR [+4]

Abstract

By using vector and parallel hardware, present day supercomputers are capable of execution rates of several hundred megaflops. Effective utilization of supercomputer hardware from languages such as Fortran requires increasingly sophisticated compilers. Not only must such compilers be able to recognize parallelism inherent within a program, but they must also be able to aggressively transform a program so as to enhance its parallelism. Unfortunately, the present programming cycle of edit-compile-link-run can prevent a compiler from obtaining information it requires to determine the safetyy of many valuable transformations. This paper proposes the use of a programming environment to help facilitate this transfer of information.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 10% of the total text.

Page 1 of 10

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

Programming Environments for Supercomputers*

Randy Allen Ken Kennedy

Rice COMP TR85-18 March, 1985

Department of Computer Science Rice University P.O. Box 1802 Houston, Texas 77251

*Support for this work was provided by MM Corporation.

Abstract

By using vector and parallel hardware, present day supercomputers are capable of execution rates of several hundred megaflops. Effective utilization of supercomputer hardware from languages such as Fortran requires increasingly sophisticated compilers. Not only must such compilers be able to recognize parallelism inherent within a program, but they must also be able to aggressively transform a program so as to enhance its parallelism. Unfortunately, the present programming cycle of edit-compile-link-run can prevent a compiler from obtaining information it requires to determine the safetyy of many valuable transformations. This paper proposes the use of a programming environment to help facilitate this transfer of information.

Key words and Phrases: automatic vectorization, dependence, programming environment, parallel programming.

1. Introduction

By using vector and parallel hardware, present day supercomputers are capable of execution rates of several hundred megaflops. Unfortunately, the speeds at which supercomputers can execute and the speeds at which supercompouters do execute are two entirely different matters. Most programs written in "high-level" languages, (that is, Fortran) do not effectively use supercomputer hardware. For instance, 30 megaflops is often quoted as an excellent execution rate on the Cray 1, even though the hardware is capable of 160 megaflops [DonE 83]. As machines become more highly parallel, this difficulty will only increase.

Two requirements have to be met in order for a program to utilize supercomputer hardware: the program must contain enough parallelism to drive the hardware and that parallelism must be expressed in a form that a compiler can recognize and exploit. There are, of course, two corresponding reasons why a program may not effectively utilize a supercomputer. The program may not contain enough parallelism to utilize the hardware, or the parrrallelism may not be expressed in a form that the compiler can recognize.

One mechanism for overcoming both of these difficulties is to provide interaction between the programmer and the compiler. Interactive capabilities have been

*This research has been supported by a number of grants from IBM corporation, and by the National Science Foundation CER grant MCS-8121884. previously recognized as being of value to a compiler, in that they allow to com-piler to gain information that is normally not available

Rice University Page 1 Dec 31, 1985

Page 2 of 10

Programming Environments for Supercomputers

until run-time. However, with the proper use, such information can be equally as valuable to the program-mer in the development of a parallel algorithm....