Related articles |
---|
High Performance Compilers July Short Course mwolfe@ogicse.ogi.edu (1992-04-16) |
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
computers.
The full details of this course are available electronically
via anonymous ftp at:
% ftp cse.ogi.edu [or ftp 129.95.40.2]
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.
COURSE OUTLINE:
MONDAY:
Registration
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
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
. handing pointers
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, triangular 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
. other uses of analysis methods
- communication analysis for message passing
- footprint analysis for cache memories
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 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.