Thu, 16 Apr 1992 23:30:47 GMT

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.

--

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.