Contents
Click a page name
Polaris: Compiling for Parallelism
Unnamed
Parallel computing will become the norm
Parallel computing is necessary
Parallel programming costs are too high
Powerful compilers are needed
Research objective of the Polaris Project
Programming model
Programming model (cont.)
Main focus is on numerical computations
Unnamed
An Experiment on the Alliant FX/80
Automatically-obtained speedups on the Alliant FX/80
An experiment on the Alliant FX/80 (cont.)
Speedups on the Alliant FX/80
Unnamed
Unnamed
Idiom recognition and substitution
Reduction recognition
Reduction recognition (cont.)
Reduction recognition (cont.)
Reduction recognition (cont.)
Reduction recognition (cont.)
Induction variable recognition
Induction variable recognition (cont.)
Dependence Analysis
Dependence Analysis (cont.)
Dependence Analysis (cont.)
Dependence analysis (cont.)
Dependence analysis (cont.)
Dependence analysis (cont.)
The Range Test
The Range Test (cont.)
The Range Test (cont.)
Speculative parallelization
Speculative parallelization (cont.)
Speculative parallelization (cont.)
Speculative parallelization (cont.)
Speculative parallelization (cont.)
Array privatization
Array privatization (cont.)
Array privatization (cont.)
Flow analysis for array privatization
On demand symbolic analysis
Flow sensitive analysis - gated join
Aggregation
DEF:w(1)
Aggregation (cont.)
Access Region Analysis
Access Region Analysis (cont.)
Access Region Analysis (cont.)
Unnamed
The Polaris Restructurer
The Polaris restructurer (cont.)
Internal representation
Internal representation (cont.)
Internal representation (cont.)
Internal representation (cont.) (continued)
Internal representation (cont.)
High-level constructs for program transformation
Unnamed
Unnamed
Performance studies
Speedups on the SGI Challenge
Speedups on SGI Challenge (8 processors)
Speedups on the Cray T3D
Speedups on the Cray T3D (continued)
Fortran restructuring for the Cray T3D
Automatic vs. manual speedups
Conclusions