High Performance Compilers Short Course

mwolfe@ogicse.ogi.edu (Michael Wolfe)
5 Feb 92 20:57:19 GMT

          From comp.compilers

Related articles
HIGH PERFORMANCE COMPILERS SHORT COURSE mwolfe@cse.ogi.edu (Michael Wolfe) (1991-05-02)
High Performance Compilers Short Course mwolfe@ogicse.ogi.edu (1992-02-05)
| List of all articles for this month |

Newsgroups: comp.compilers
From: mwolfe@ogicse.ogi.edu (Michael Wolfe)
Keywords: courses, optimize
Organization: Oregon Graduate Institute, Beaverton, OR
Date: 5 Feb 92 20:57:19 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

Last year's course was very successful; the enrollment filled up
within a month of the advertisement; a second week was scheduled
and it filled up too. This year's course builds on last year's
course, but is updated and improved.

The full details of this course are available electronically
via anonymous ftp at cse.ogi.edu [] in pub/tiny/HPC.

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.
See also the companion posting with the outline for our new
High Performance Compiler Back Ends short course.




1. Modern High Performance Computer Architecture (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
. Current Examples
    - Intel i860, IBM RS/6000, Multiflow Trace/300, Cray Y-MP, Alliant FX/80

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

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

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, 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


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 distributed memory computers
. 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.