|
ABSTRACT
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 FORTRAN 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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
ALLEN, F. E., COCKE, J., AND KENNEDY, K. Reduction of operator strength. In Program Flow Analysis: Theory and Applications, N. D. Jones and S. S. Muchnick, Eds. Prentice-Hall, Englewood Cliffs, N.J., 1981.
|
 |
3
|
J. R. Allen , Ken Kennedy , Carrie Porterfield , Joe Warren, Conversion of control dependence to data dependence, Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.177-189, January 24-26, 1983, Austin, Texas
[doi> 10.1145/567067.567085]
|
| |
4
|
|
| |
5
|
American National Standards Institute, Inc. Proposals approved for Fortran 8x. X3J3/S6.80 (preliminary document). ANSI, New York, Nov. 30, 1981.
|
| |
6
|
BANERJEE, U. Data dependence in ordinary programs. Report 76-837, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, Ill., Nov. 1976.
|
| |
7
|
Burroughs Corporation. Implementation of FORTRAN. Burroughs Scientific Processor Brochure, 1977.
|
 |
8
|
|
| |
9
|
COHAGEN, W. L. Vector optimization for the ASC. In Proceedings of the Seventh Annual Princeton Conference on Information Sciences and Systems (Dept. of Electrical Engineering, Princeton, N.J., 1973), pp. 169-174.
|
| |
10
|
Cray Research, Inc. Cray-1 Computer System Reference Manual. Publication 2240004, Cray Research, Inc., Bloomington, Minn., 1976.
|
| |
11
|
Cray Research, Inc. Cray-1 Computer System FORTRAN (CFT) Reference Manual. Publication 2240009, Cray Research, Inc., Mendota Heights, Minn., 1980.
|
| |
12
|
Department of Energy, Advanced Computing Committee Language Working Group. FORTRAN language requirements, fourth report. Draft report, Department of Energy, Aug. 1979.
|
| |
13
|
Floating Point Systems, Inc. AP-120 Programmers Reference Manual. Publication 860-7319- 000, Floating Point Systems, Inc., Beaverton, Ore., 1978.
|
| |
14
|
GRIFFIN, H. Elementary Theory of Numbers. McGraw-Hill, New York, 1954.
|
| |
15
|
HIGBEE, L. Vectorization and conversion of FORTRAN programs for the Cray-1 CFT compiler. Publication 2240207, Cray Research Inc., Mendota Heights, Minn., June 1979.
|
| |
16
|
|
 |
17
|
|
| |
18
|
|
 |
19
|
D. J. Kuck , R. H. Kuhn , D. A. Padua , B. Leasure , M. Wolfe, Dependence graphs and compiler optimizations, Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.207-218, January 26-28, 1981, Williamsburg, Virginia
[doi> 10.1145/567532.567555]
|
| |
20
|
KUCK, D. J., KUHN, R. H., LEASURE, B., AND WOLFE, M. The structure of an advanced vectorizer for pipelined processors. In Proceedings of the IEEE Computer Society Fourth International Computer Software and Applications Conference (Chicago, Oct. 1980). IEEE, New York, 1980.
|
| |
21
|
LEASURE, B. R. Compiling serial languages for parallel machines. Report-76-805, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, Ill., Nov. 1976.
|
| |
22
|
LEVESQUE, J. M. Application of the Vectorizer for effective use of high-speed computers. In High Speed Computer and Algorithm Organization, D. J. Kuck, D. H. Lawrie, and A. H. Sameh, Eds. Academic Press, New York, 1977, pp. 447-449.
|
| |
23
|
MCCLUSKEY, E.g. Minimization of Boolean functions. Bell System Tech. J. 35, 5 (Nov. 1956), 1417-1444.
|
| |
24
|
MURAOKA, Y. Parallelism exposure and exploitation in programs. Report 71-414, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana Ill., Feb. 1971.
|
| |
25
|
MYSZEWSKI, M. The Vectorizer System: Current and proposed capabilities. Report CA-17809- 1511 Massachusetts Computer Associates, Inc., Wakefield, Mass., Sept. 1978.
|
| |
26
|
PAUL, G., private communication, 1980.
|
| |
27
|
PAUL, G., ANO WILSON, M. W. An Introduction to VECTRAN and its use in scientific applications programming. In Proceedings of the LASL Workshop on Vector and Parallel Processors. (Los Alamos, N.M., Sept. 1978). University of California, Los Alamos Scientific Laboratory, Los Alamos, N.M., 1978, pp. 176-204.
|
| |
28
|
PAUL, G., AND WILSON, M.W. The VECTRAN language: An experimental language for vector/ matrix array processing. IBM Palo Alto Scientific Center Report G320-3334, Palo Alto, Calif., Aug. 1975.
|
| |
29
|
QUINE, W.V. The problem of simplifying truth functions. Am. Math. Monthly 59, 8 (Oct. 1952), 521-531.
|
 |
30
|
|
| |
31
|
TARZAN, R.E. Depth first search and linear graph algorithms. SlAM J. Comput. 1, 2 (1972), 146-160.
|
| |
32
|
|
 |
33
|
|
| |
34
|
WETHERELL, C. Array processing for FORTRAN. Report CID-30175, Lawrence Livermore Laboratory, Livermore, Calif., April 1979.
|
| |
35
|
WIq~MAYER, W. R. Array processor provides high throughput rates. Comput. Des~n (March 1978).
|
| |
36
|
WOLFE, M.J. Techniques for improving the inherent parallelism in programs. Report 78-929, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, Ill., July 1978.
|
CITED BY 168
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D. L. Dai , S. K. S. Gupta , S. D. Kaushik , J. H. Lu , R. V. Singh , C.-H. Huang , P. Sadayappan , R. W. Johnson, EXTENT: a portable programming environment for designing and implementing high-performance block recursive algorithms, Proceedings of the 1994 conference on Supercomputing, p.49-58, December 1994, Washington, D.C., United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D. Callahan , J. Dongarra , D. Levine, Vectorizing compilers: a test suite and results, Proceedings of the 1988 ACM/IEEE conference on Supercomputing, p.98-105, November 12-17, 1988, Orlando, Florida, United States
|
|
|
|
|
|
|
|
|
|
|
|
Ervan Darnell , John M. Mellor-Crummey , Ken Kennedy, Automatic software cache coherence through vectorization, Proceedings of the 6th international conference on Supercomputing, p.129-138, July 19-24, 1992, Washington, D. C., United States
|
|
|
|
|
|
Seema Hiranandani , Ken Kennedy , Chau-Wen Tseng, Evaluation of compiler optimizations for Fortran D on MIMD distributed memory machines, Proceedings of the 6th international conference on Supercomputing, p.1-14, July 19-24, 1992, Washington, D. C., United States
|
|
|
|
|
|
|
|
|
Junjie Gu , Zhiyuan Li , Gyungho Lee, Symbolic array dataflow analysis for array privatization and program parallelization, Proceedings of the 1995 ACM/IEEE conference on Supercomputing (CDROM), p.47-es, December 04-08, 1995, San Diego, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B. E. Hart , S. Danforth , P. Valduriez, Parallelizing a database programming language, Proceedings of the first international symposium on Databases in parallel and distributed systems, p.72-79, December 05-07, 1988, Austin, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A. Gerasoulis , N. Missirlis , I. Nelken , R. Peskin, Implementing Gauss Jordan on a hypercube multicomputer, Proceedings of the third conference on Hypercube concurrent computers and applications, p.1569-1576, January 1989, Pasadena, California, United States
|
|
|
|
|
|
Mary W. Hall , Ken Kennedy , Kathryn S. McKinley, Interprocedural transformations for parallel code generation, Proceedings of the 1991 ACM/IEEE conference on Supercomputing, p.424-434, November 18-22, 1991, Albuquerque, New Mexico, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vivek Sarkar , Mauricio J. Serrano , Barbara B. Simons, Register-sensitive selection, duplication, and sequencing of instructions, Proceedings of the 15th international conference on Supercomputing, p.277-288, June 2001, Sorrento, Italy
|
|
|
|
|
|
|
|
|
Hongbo Yang , Guang R. Gao , Clement Leung, On achieving balanced power consumption in software pipelined loops, Proceedings of the 2002 international conference on Compilers, architecture, and synthesis for embedded systems, October 08-11, 2002, Grenoble, France
|
|
|
|
|
|
|
|
|
|
|
|
B.-M. Hsieh , M. Hind , R. Cytron, Loop distribution with multiple exits, Proceedings of the 1992 ACM/IEEE conference on Supercomputing, p.204-213, November 16-20, 1992, Minneapolis, Minnesota, United States
|
|
|
|
|
|
|
|
|
Alok Choudhary , Geoffrey Fox , Seema Hiranandani , Ken Kennedy , Charles Koelbel , Sanjay Ranka , Chau-Wen Tseng, Unified compilation of Fortran 77D and 90D, ACM Letters on Programming Languages and Systems (LOPLAS), v.2 n.1-4, p.95-114, March–Dec. 1993
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E. Ayguadé , J. Labarta , J. Torres , P. Borensztejn, GTS: parallelization and vectorization of tight recurrences, Proceedings of the 1989 ACM/IEEE conference on Supercomputing, p.531-539, November 12-17, 1989, Reno, Nevada, United States
|
|
|
|
|
|
Girish Venkataramani , Walid Najjar , Fadi Kurdahi , Nader Bagherzadeh , Wim Bohm, A compiler framework for mapping applications to a coarse-grained reconfigurable computer architecture, Proceedings of the 2001 international conference on Compilers, architecture, and synthesis for embedded systems, November 16-17, 2001, Atlanta, Georgia, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Seema Hiranandani , Ken Kennedy , Chau-Wen Tseng, Compiler optimizations for Fortran D on MIMD distributed-memory machines, Proceedings of the 1991 ACM/IEEE conference on Supercomputing, p.86-100, November 18-22, 1991, Albuquerque, New Mexico, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jack Dongarra , Ian Foster , Geoffrey Fox , William Gropp , Ken Kennedy , Linda Torczon , Andy White, References, Sourcebook of parallel computing, Morgan Kaufmann Publishers Inc., San Francisco, CA, 2003
|
|
|
D. L. Dai , S. K. S. Gupta , S. D. Kaushik , J. H. Lu , R. V. Singh , C. H. Huang , P. Sadayappan , R. W. Johnson, EXTENT: a portable programming environment for designing and implementing high-performance block recursive algorithms, Proceedings of the 1994 ACM/IEEE conference on Supercomputing, November 14-18, 1994, Washington, D.C.
|
|
|
Girish Venkataramani , Walid Najjar , Fadi Kurdahi , Nader Bagherzadeh , Wim Bohm , Jeff Hammes, Automatic compilation to a coarse-grained reconfigurable system-opn-chip, ACM Transactions on Embedded Computing Systems (TECS), v.2 n.4, p.560-589, November 2003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
V. Balasundaram , K. Kennedy , U. Kremer , K. McKinley , J. Subhlok, The parascope editor: an interactive parallel programming tool, Proceedings of the 1989 ACM/IEEE conference on Supercomputing, p.540-550, November 12-17, 1989, Reno, Nevada, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D. Edelsohn , W. Gellerich , M. Hagog , D. Naishlos , M. Namolaru , E. Pasch , H. Penner , U. Weigand , A. Zaks, Contributions to the GNU compiler collection, IBM Systems Journal, v.44 n.2, p.259-278, January 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sylvain Girbal , Nicolas Vasilache , Cédric Bastoul , Albert Cohen , David Parello , Marc Sigler , Olivier Temam, Semi-automatic composition of loop transformations for deep parallelism and memory hierarchies, International Journal of Parallel Programming, v.34 n.3, p.261-317, June 2006
|
|
|
Nicolas Vasilache , Cedric Bastoul , Albert Cohen , Sylvain Girbal, Violated dependence analysis, Proceedings of the 20th annual international conference on Supercomputing, June 28-July 01, 2006, Cairns, Queensland, Australia
|
|
|
|
|
|
J. Birch , R.A. van Engelen , K.A. Gallivan , Y. Shou, An empirical evaluation of chains of recurrences for array dependence testing, Proceedings of the 15th international conference on Parallel architectures and compilation techniques, September 16-20, 2006, Seattle, Washington, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shane Ryoo , Christopher I. Rodrigues , Sara S. Baghsorkhi , Sam S. Stone , David B. Kirk , Wen-mei W. Hwu, Optimization principles and application performance evaluation of a multithreaded GPU using CUDA, Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming, February 20-23, 2008, Salt Lake City, UT, USA
|
|
|
Muthu Manikandan Baskaran , Nagavijayalakshmi Vydyanathan , Uday Kumar Reddy Bondhugula , J. Ramanujam , Atanas Rountev , P. Sadayappan, Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors, Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, February 14-18, 2009, Raleigh, NC, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|