Distributed-memory systems (DMMPs) are powerful tools for solving large-scale scientific and engineering problems. However, these machines are difficult to program since the data must be distributed across the processors and message-passing operations must be inserted for communicating non-local data. In this paper, we discuss the automatic parallelization of Fortran programs for DMMPs, based on the programming paradigms associated with Vienna Fortran and High Performance Fortran. After introducing the state of the art, as represented by currently implemented systems, we will identify a number of limitations of this technology. In addition to insufficient functionality for handling many real applications, a major deficiency of current systems is the lack of intelligence in selecting good transformation strategies. We argue that a knowledgebased approach to compiling will contribute to more powerful and intelligent automatic parallelization systems in the future.
|
963
|
Performance Fortran Forum. High Performance Fortran language specification version 1.0
– High
- 1993
|
|
401
|
Supercompilers for Parallel and Vector Computers
– Zima, Chapman
- 1991
|
|
316
|
Compiling Fortran D for MIMD distributed-memory machines
– Hiranandani, Kennedy, et al.
- 1992
|
|
298
|
Fortran D Language Specification
– Fox, Hiranandani, et al.
- 1990
|
|
179
|
SUPERB: A tool for semi-automatic MIMD/SIMD parallelization
– ZIMA, BAST, et al.
- 1988
|
|
163
|
Process decomposition through locality of reference
– ROGERS, PINGALI
- 1989
|
|
147
|
Fortran M: A language for modular parallel programming
– Foster, Chandy
- 1992
|
|
141
|
Compiling programs for distributed-memory multiprocessors
– CALLAHAN, KENNEDY
- 1988
|
|
133
|
Data-parallel programming on MIMD computers
– HATCHER, QUINN, et al.
- 1991
|
|
129
|
Data optimization: Allocation of arrays to reduce communication on SIMD machines
– Knobe, Lukas, et al.
- 1990
|
|
120
|
Compiling communication-efficient programs for massively parallel machines
– LI, CHEN
- 1991
|
|
116
|
Automatic Data Partitioning on Distributed Memory Multicomputers
– Gupta
- 1992
|
|
115
|
Index Domain Alignment: Minimizing Cost of Cross{referencing between Distributed Arrays
– Li, Chen
- 1990
|
|
114
|
Run-time scheduling and execution of loops on message passing machines
– Saltz, Crowley, et al.
- 1991
|
|
93
|
Exploiting task and data parallelism on a multicomputer
– Subhlok, Stichnoth, et al.
- 1993
|
|
85
|
Compile-time techniques for data distribution in distributed memory machines
– Ramanujam, Sadayappan
- 1991
|
|
75
|
Compiling for distributed-memory systems
– Zima, Chapman
- 1993
|
|
70
|
A static parameter based performance prediction tool for parallel programs
– Fahringer, Zima
- 1993
|
|
68
|
Automatic Parallelization for Distributed-Memory Multiprocessing Systems
– Gerndt
- 1989
|
|
67
|
Vienna Fortran - a language specification
– Zima, Brezany, et al.
- 1992
|
|
51
|
Programming distributed memory architectures using Kali
– Mehrotra, Rosendale
- 1991
|
|
50
|
KnowledgeBased Program Analysis
– Harandi, Ning
- 1990
|
|
45
|
An automatic and symbolic parallelization system for distributed memory parallel computers
– IKUDOME, Fox, et al.
- 1990
|
|
44
|
Strand: New Concepts in Parallel Programming
– Foster, Taylor
- 1990
|
|
43
|
PANDORE: A system to manage data distribution
– Andr4, Pazat, et al.
- 1990
|
|
38
|
Compiling Programs for Nonshared Memory Machines
– Koelbel
- 1990
|
|
36
|
Compiler techniques for data partitioning of sequentially iterated parallel loops
– Hudak, Abraham
- 1990
|
|
29
|
SUPERB support for irregular scientific computations
– Brezany, Gerndt, et al.
- 1992
|
|
27
|
Automatic performance prediction to support parallelization of Fortran programs for massively parallel systems
– Fahringer, Blasko, et al.
- 1992
|
|
26
|
Optimizing FORTRAN-90 Programs for Data Motion on Massivelly Parallel Systems
– Chen, Wu
- 1992
|
|
25
|
Automatic support for data distribution on distributed memory multiprocessor systems
– Chapman, Fahringer, et al.
- 1993
|
|
25
|
MPP Fortran Programming Model
– Pase, McDonald, et al.
- 1994
|
|
21
|
ADAPTing Fortran 90 Array Programs for Distributed Memory Architectures
– Merlin
- 1991
|
|
21
|
Parallelization of Fortran code on distributed-memory parallel processors
– Ruhl, Annaratone
- 1990
|
|
12
|
Semi-automatic process partitioning for parallel computation
– Koelbel, Mehrotra, et al.
- 1987
|
|
12
|
Applying AI Techniques to Program Optimization for Parallel Computers
– Wang, Gannon
- 1989
|
|
11
|
A manual for PARTI runtime primitives - Revision 2. Internal Research Report
– Das, Saltz
- 1992
|
|
11
|
A high-level language for the description of parallel algorithms
– Paalvast, H
- 1989
|
|
10
|
Interactive Program Improvement via EAVE: An Expert Adviser for Vectorization
– Bose
- 1988
|
|
7
|
Hypertasking Support for Dynamically Redistributable and Resizeable Arrays on the iPSC
– Baber
- 1991
|
|
5
|
Compiling Crystal for Distributed-Memory Machines
– Li
- 1991
|
|
3
|
Work distribution in parallel programs for distributed memory multiprocessors
– Gerndt
- 1991
|
|
1
|
A Rule Based Transformation System for Parallel Languages
– Breebaart, Sips
- 1992
|
|
1
|
Compilation of Vienna Fortran Forall Loops. Paper submitted to the Conference SUPERCOMPUTING'93
– Brezany, Das
- 1993
|
|
1
|
Fortran Compilation System Version 1.0 User's Guide
– Vienna
- 1993
|
|
1
|
Program Optimization and Parallelization for Parallel Computers
– Intelligent
- 1991
|