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) |
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 [129.95.40.2] 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.
COURSE OUTLINE:
MONDAY:
Registration
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
TUESDAY:
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
WEDNESDAY:
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
- Fortran EQUIVALENCE, COMMON
- C pointers, argument passing
- Fortran-90 pointers
THURSDAY:
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)
FRIDAY:
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
COURSE SCHEDULE
Monday-Friday
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.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.