ACM Home Page
Please provide us with feedback. Feedback
The rise and fall of High Performance Fortran: an historical object lesson
Full text MovMov (64:25),  PdfPdf (251 KB)
Source
History of Programming Languages archive
Proceedings of the third ACM SIGPLAN conference on History of programming languages table of contents
San Diego, California
Pages: 7-1 - 7-22  
Year of Publication: 2007
ISBN:978-1-59593-766-X
Authors
Ken Kennedy  Rice University, Houston, TX
Charles Koelbel  Rice University, Houston, TX
Hans Zima  University of Vienna, Austria
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 33,   Downloads (12 Months): 354,   Citation Count: 6
Additional Information:

appendices and supplements   abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1238844.1238851
What is a DOI?

APPENDICES and SUPPLEMENTS
Pptslides.ppt (8.27 MB),
The rise and fall of High Performance Fortran PowerPoint presentation


ABSTRACT

High Performance Fortran (HPF) is a high-level data-parallel programming system based on Fortran. The effort to standardize HPF began in 1991, at the Supercomputing Conference in Albuquerque, where a group of industry leaders asked Ken Kennedy to lead an effort to produce a common programming language for the emerging class of distributed-memory parallel computers. The proposed language would focus on data-parallel operations in a single thread of control, a strategy which was pioneered by some earlier commercial and research systems, including Thinking Machines' CM Fortran, Fortran D, and Vienna Fortran.

The standardization group, called the High Performance Fortran Forum (HPFF), took a little over a year to produce a language definition that was published in January 1993 as a Rice technical report [50] and, later that same year, as an article in Scientific Programming [49].

The HPF project had created a great deal of excitement while it was underway and the release was initially well received in the community. However, over a period of several years, enthusiasm for the language waned in the United States, although it has continued to be used in Japan.

This paper traces the origins of HPF through the programming languages on which it was based, leading up to the standardization effort. It reviews the motivation underlying technical decisions that led to the set of features incorporated into the original language and its two follow-ons: HPF 2 (extensions defined by a new series of HPFF meetings) and HPF/JA (the dialect that was used by Japanese manufacturers and runs on the Earth Simulator).

A unique feature of this paper is its discussion and analysis of the technical and sociological mistakes made by both the language designers and the user community:, mistakes that led to the premature abandonment of the very promising approach employed in HPF. It concludes with some lessons for the future and an exploration of the influence of ideas from HPF on new languages emerging from the High Productivity Computing Systems program sponsored by DARPA.


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
3
 
4
 
5
Alliant Computer Systems. http://en.wikipedia.org/wiki/Alliant-Computer-Systems.
6
7
 
8
Applied Parallel Research, Sacramento, California. Forge High Performance Fortran xhpf User's Guide, Version 2.1, 1995.
 
9
G. H. Barnes, R. M. Brown, M. Kato, D. Kuck, D. Slotnick, and R. Stokes. The ILLIAC IV computer. IEEE Transactions on Computers, C-17:746--757, 1968.
 
10
Kenneth E. Batcher. The Multi-Dimensional Access Memory in STARAN. IEEE Transactions on Computers, C-26(2):174--177, February 1977.
 
11
 
12
 
13
14
 
15
16
 
17
D. Callahan, Bradford L. Chamberlain, and Hans P. Zima. The Cascade High Productivity Language. In Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS'04), pages 52--60, April 2004.
 
18
D. Callahan and K. Kennedy. Compiling Programs for Distributed-Memory Multiprocessors. Journal of Supercomputing, 2:151--169, October 1988.
 
19
 
20
Bradford L. Chamberlain, D. Callahan, and H. P. Zima. Parallel Programmability and the Chapel Language. The International Journal of High Performance Computing Applications, 2007. Special Issue on High Productivity Programming Languages and Models (in print).
 
21
B. Chapman, P. Mehrotra, and H. Zima. Programming in Vienna Fortran. Scientific Programming, 1(1):31--50, Fall 1992.
22
23
 
24
Daniel Chavarría-Miranda, Guohua Jin, and John Mellor-Crummey. Assessing the US Supercomputing Strategy: An Application Study Using IMPACT-3D. In Proceedings of the 19th International Parallel and Distributed Processing Symposium (IPDPS), Denver, CO, April 2005.
 
25
 
26
A. Choudhary, G. Fox, S. Ranka, S. Hiranandani, K. Kennedy, C. Koelbel, and J. Saltz. Software Support for Irregular and Loosely Synchronous Problems. International Journal of Computing Systems in Engineering, 3(2):43--52, 1993. (also available as CRPC-TR92258).
 
27
Peter Christy. Software to Support Massively Parallel Computing on the MasPar MP-1. In Proceedings of the IEEE Compcon, 1990.
28
 
29
K. D. Cooper, M. W. Hall, K. Kennedy, and L. Torczon. Interprocedural Analysis and Optimization. Communications in Pure and Applied Mathematics, 48:947--1003, 1995.
 
30
Cray history. http://www.cray.com/about-cray/history.html.
 
31
Cray-1 Computer System. Hardware Reference Manual 224004. Technical report, Cray Research, Inc., November 1977. Revision C.
 
32
 
33
 
34
F. Darema-Rogers, D. A. George, V. A. Norton, and G. F. Pfister. VM/EPEX---A VM Environment for Parallel Execution. Technical Report RC 11225(#49161), IBM T. J. & Watson Research Center, Yorktown Heights, New York, January 1985.
35
 
36
R. L. Diaconescu and H. P. Zima. An Approach to Data Distributions in Chapel. The International Journal of High Performance Computing Applications, 2006. Special Issue on High Productivity Programming Languages and Models (in print).
 
37
M. Flynn. Some Computer Organisations and their Effectiveness. Trans. Computers, 21:948--960, 1972.
 
38
G. Fox, S. Hiranandani, K. Kennedy, C. Koelbel, U. Kremer, C.-W. Tseng, and M. Wu. The Fortran D Language Specification. Technical Report TR90--141, Department of Computer Science, December 1990.
 
39
 
40
Michael Gerndt. Automatic Parallelization for Distributed-Memory Multiprocessing Systems. PhD thesis, University of Bonn, Germany, 1989.
 
41
Wolfgang K. Giloi. SUPRENUM: A Trendsetter in Modern Supercomputer Development. Parallel Computing, pages 283--296, 1988.
 
42
W. Gropp, S. Huss-Lederman, A. Lumsdaine, E. Lusk, B. Nitsberg, W. Saphir, and M. Snir. MPI---The Complete Reference: Volume 2, The MPI Extensions. Scientific and Engineering Computation Series. MIT Press, Cambridge, Massachusetts, September 1998.
43
 
44
 
45
 
46
47
 
48
 
49
High Performance Fortran Forum. High Performance Fortran Language Specification. Scientific Programming, 2(1--2): 1--170, 1993. (also available as CRPC-TR92225).
 
50
High Performance Fortran Forum. High Performance Fortran Language Specification, version 1.0. Technical Report CRPC-TR92225, Rice University, Center for Research on Parallel Computation, Houston, Tex., 1993.
 
51
R. Hill. MIMDizer: A New Tool for Parallelization. Supercomputing Review, 3(4), April 1990.
 
52
53
54
 
55
P. Husbands, C. Isbell, and A. Edelman. MATLAB*P: A Tool for Interactive Supercomputing. In Proceedings of the 9th SIAM Conference on Parallel Processing. Scientific Computing, 1999.
 
56
ESA/390 Principles of Operation. Technical report, IBM Corporation. IBM Publication No. SA22--7201.
 
57
K. Ikudome, G. Fox, A. Kolawa, and J. Flower. An Automatic and Symbolic Parallelization System for Distributed Memory Parallel Computers. In Fifth Distributed-Memory Computing Conference, pages 1105--1114, Charleston, South Carolina, April 1990.
 
58
H. F. Jordan. The Force. In L. H. Jamieson, D. B. Gannon, and R. J. Douglass, editors, The Characteristics of Parallel Algorithms. MIT Press, 1987.
 
59
Kendall Square Systems. http://en.wikipedia.org/wiki/Kendall-Square-Research.
60
 
61
Jeremy Kepner and Nadya Travinin. Parallel Matlab: The next generation. In Proceedings of the 2003 Workshop on High Performance Embedded Computing (HPEC03), 2003.
 
62
KSR1 Principles of Operation, 1991. Waltham, MA.
 
63
D. Kuck, Y. Muraoka, and S. Chen. On the Number of Operations Simultaneously Executable in Fortran-like Programs and Their Resulting Speedup. IEEE Transactions on Computers, C-21(12): 1293--1310, December 1972.
64
65
 
66
B. Leasure. Parallel Processing Model for High-Level Programming Languages. Technical report, American National Standard for Information Processing, April 1994.
 
67
 
68
 
69
 
70
Message Passing Interface Forum. MPI: A Message-Passing Interface Standard. International Journal of Super-computer Applications and High Performance Computing, 8(3/4):165--414, 1994. (special issue on MPI, also available electronically via ftp://www.netlib.org/mpi/mpi-report.ps).
 
71
Myrias Systems. http://en.allexperts.com/e/m/my/myrias-research-corporation.htm.
 
72
 
73
OpenMP Application Program Interface. Version 2.5. Technical report, OpenMP Architecture Review Board, May 2005. http://www.openmp.org.
 
74
 
75
D. Pase. MPP Fortran Programming Model. High Performance Fortran Forum, January 1991.
 
76
 
77
A. P. Reeves and C. M. Chase. The Paragon Programming Paradigm and Distributed-Memory Multicomputers. In J. Saltz and P. Mehrotra, editors, Compilers and Runtime Software for Scalable Multiprocessors. Elsevier, Amsterdam, The Netherlands, 1991.
78
 
79
John R. Rose and Guy L. Steele. C*: An Extended C Language for Data Parallel Programming. In Proceedings Second International Conference on Supercomputing, volume Vol. II, 2--16, 1987. International Supercomputing Institute.
 
80
M. Rosing, R. W. Schnabel, and R. P. Weaver. Expressing Complex Parallel Algorithms in DINO. In Fourth Conference on Hypercubes, Concurrent Computers, and Applications, pages 553--560, 1989.
81
 
82
 
83
 
84
85
 
86
M. Shimasaki and Hans P. Zima. Special Issue on the Earth Simulator, November 2004.
 
87
D. Slotnick, W. Brock, and R. MacReynolds. The SOLOMON computer. In Proceedings of the AFIPS Fall Joint Computer Conference, pages 87--107, 1962.
 
88
 
89
Lawrence Snyder. A Programming Guide to ZPL. MIT Press, Scientific and Engineering Computation Series, March 1999.
 
90
Sun Microsystems, Inc., Burlington, Massachusetts. The Fortress Language Specification, Version 0.707, July 2005.
 
91
Thinking Machines Corporation, Cambridge, Massachusetts. CM Fortran Reference Manual, Version 1.0, February 1991.
 
92
Transputer: A Programmable Component that Gives Micros a New Name. Computer Design, 23:243--244, February 1984.
93
 
94
 
95
P. S. Tseng. A Systolic Array Programming Language. In Fifth Distributed-Memory Computing Conference, pages 1125--1130, Charleston, South Carolina, April 1990.
 
96
 
97
Vax computers. http://h18000.www1.hp.com/alphaserver/vax/timeline/1986.html.
98
 
99
 
100
H. Zima, H.-J. Bast, and M. Gerndt. SUPERB: A Tool For Semi-Automatic MIMD/SIMD Parallelization. Parallel Computing, 6:1--18, 1988.
 
101
H. Zima and B. Chapman. Compiling for Distributed-Memory Systems. Proceedings of the IEEE, 81(2):264--287, February 1993.
 
102
Hans P. Zima, P. Brezany, B. Chapman, P. Mehrotra, and A. Schwald. Vienna Fortran - A Language Specification. Internal Report 21, ICASE, NASA Langley Research Center, March 1992.


Collaborative Colleagues:
Ken Kennedy: colleagues
Charles Koelbel: colleagues
Hans Zima: colleagues