High Performance Compilers July Short Course

mwolfe@ogicse.ogi.edu (Michael Wolfe)
Thu, 16 Apr 1992 23:30:47 GMT

          From comp.compilers

Related articles
High Performance Compilers July Short Course mwolfe@ogicse.ogi.edu (1992-04-16)
| List of all articles for this month |

Newsgroups: comp.compilers
From: mwolfe@ogicse.ogi.edu (Michael Wolfe)
Keywords: parallel, courses
Organization: Oregon Graduate Institute, Beaverton, OR
Date: Thu, 16 Apr 1992 23:30:47 GMT

Once again, the Oregon Graduate Institute is offering a

    Summer Intensive Tutorial on
      High Performance Compilers
            July 6-10, 1992
        Hotel Vintage Plaza
            Portland, Oregon

This year's course builds on last year's course, but is updated and
improved. In particular, it will include all-new material related to the
proposals for High Performance Fortran on scalable massively parallel

The full details of this course are available electronically
via anonymous ftp at:

% ftp cse.ogi.edu [or ftp]
Name: anonymous
Password: myname@where.am.i
ftp> cd pub
ftp> cd HPC
ftp> get HPC
ftp> quit

Or send email to
mwolfe@cse.ogi.edu (for technical inquiries)
lpease@admin.ogi.edu (for registration and other information)

What follows is the (lengthy) course outline and schedule.




1. Modern High Performance Computer Architecture and Languages (1.5 hours)
. Architectural Options
    - vector instruction set and vector registers
    - multiple CPUs
    - multiple operations per instruction (VLIW)
    - super-scalar control unit
    - super-pipelined data unit
    - cache memory organization
    - massively parallel systems
. Current Examples
    - Intel i860, IBM RS/6000, Multiflow Trace/300, Cray Y-MP, Alliant FX/80
        iPSC/860, Thinking Machines CM-5
. Languages
    - Fortran, C
    - Fortran 90
    - PCF Fortran
    - High Performance Fortran
    - Dataparallel C
    - comments on other approaches: SISAL, Crystal

2. Compiler Framework (.5 hour)
. global compiler analysis/synthesis framework
    - front end
    - high-level optimizations
    - back-end optimizations
    - code generation
. data structures to support optimization
    - control flow graph, basic blocks
    - delayed code lowering
    - comparison to 'gcc'

3. Graph Concepts (1.5 hours)
. directed graph analysis algorithms
    - graph traversal and numbering algorithms
    - spanning trees
    - dominator tree
    - cycle discovery
. complications of parallel syntax

4. Data Flow problems in a Lattice Context (2 hours)
. mapping data flow problems onto lattice
    - reaching definitions
    - live variables
    - available expressions
    - use/def chains
. solving data flow problems

5. Control Flow Analysis (2 hours)
. dominators
. interval analysis
. control dependence
    - compact representations
. identifying loops


6. Data Flow Analysis (3 hours)
. iterative bit-vector algorithms
. syntax based analysis
. interval analysis
. program dependence graph

7. Static Single Assignment Representation (3 hours)
. conversion to static single assignment
. constant propagation
. induction variable identification
. handing pointers

8. Introduction to Data Dependence (2 hours)
. flow, anti, output dependence
. dependence distance
. direction vectors
. data structures to represent data dependence


9. Data Dependence Analysis Techniques (8 hours)
. subscript analysis
    - how to formulate the dependence equation
    - the many ways to solve the dependence equation
        (single variable exact test, triangular Banerjee's inequalities, ...)
    - performance of dependence decision algorithms
    - complications (triangular loops, unknown variables, exactness)
. other complications
    - I/O dependence
    - C pointers, argument passing
    - Fortran-90 pointers
. other uses of analysis methods
    - communication analysis for message passing
    - footprint analysis for cache memories


10. Program Restructuring Techniques (4 hours)
. vectorization
    - reductions
    - strip mining
. parallelization
    - scheduling
. loop interchanging
. skewing
. tiling
. linear transformations on the index set
. performance modeling

11. Guest Lecture: Engineering a Real Compiler (4 hours)


12. Run Time Parallelism (2 hours)
. run-time scheduling of parallel code
    - self-scheduling, pre-scheduling
    - non-loop parallelism
    - system management effects

13. Guest Lecture: Compiling for Distributed Memory (4 hours)

14. Interprocedural Optimization (2 hours)
. procedure integration
. summarizing the effects of procedures
    - flow insensitive USE and MOD information
    - summarizing USE and MOD of array arguments
. interprocedural constant propagation

15. Crystal Ball: Current Research
. compiling for massively parallel architectures
. interactive programming environments
. static analysis for debugging parallel programs



Registration: Monday, 7:30am - 8:30am

Lectures: Monday-Friday, 8:00am-5:30pm

Lunches: Monday-Friday, noon-1:30pm

Breaks: 10:00-10:15am, 3:30-3:45pm

Reception: Monday, 7:00-10:00pm, at the Hotel Vintage Plaza.

Banquet: Thursday, 7:00-9:00pm, Dinner cruise on the Willamette River.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.