short course: HIGH PERFORMANCE COMPILERS (full)

mwolfe@ogicse.ogi.edu (Michael Wolfe)
26 Feb 91 00:33:26 GMT

          From comp.compilers

Related articles
short course: HIGH PERFORMANCE COMPILERS (full) mwolfe@ogicse.ogi.edu (1991-02-26)
| List of all articles for this month |
Newsgroups: comp.compilers
From: mwolfe@ogicse.ogi.edu (Michael Wolfe)
Keywords: courses, optimize
Article-I.d.: ogicse.17827
Organization: Oregon Graduate Institute, Beaverton, OR
Distribution: comp.compilers
Date: 26 Feb 91 00:33:26 GMT

Short Course Announcement:


                Oregon Graduate Institute of Science and Technology


                        Summer Intensive Tutorial and Workshop on
                                    High Performance Compilers


                                              June 10-14, 1991
                                        Portland Marriot Hotel
                                              Portland, Oregon


* COURSE DESCRIPTION


Performance of modern computers depends largely on the quality of
compiled code. Computers ranging in performance from single chip RISC
microprocessors to the most expensive vector multiprocessor
supercomputers all have architectural features that must be properly
managed and utilized for high efficiency. Recent projects have shown
that when CPU design is done with the capabilities and limitations of
current compiler technology driving the effort, a new level of delivered
performance is within reach, exemplified by the MIPS, VLIW and IBM
RS/6000 processors. Simultaneous design of compilers and computer
systems will become even more prevalent, creating a need for CPU
architects, language designers and compiler writers who understand the
interrelationship between architecture and compiler.


Much of the compiler research into automatic detection of parallelism
has made its way into commercial products, in the form of automatic
"vectorizing" and "autotasking" compilers. Emerging technologies for
flow analysis and improved optimization will impact the design of
compilers into the future. Understanding these issues will be important
for compiler writers, for those who teach compiler courses, those
working on programming environments, as well as those designing new
languages, especially new parallel languages.


This course deals with the many important issues in designing and
implementing high performance compilers. Both the theoretical aspects
(the science) and the practical details (the engineering) are presented.
In particular, high performance from a compiler means both that the
generated code must be highly optimized, and the compiler itself must be
fast. To study the tradeoffs between compile time cost and performance,
this course will compare and contrast several different algorithms for
each phase of a compiler.


COURSE OUTLINE:


MONDAY:


Registration


1. Modern High Performance Computer Architecture (3 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 schemes
    - 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


TUESDAY:


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


6. Data Flow Analysis (5 hours)
. iterative bit-vector algorithms
. interval analysis
. program dependence graph
. static single assignment representation
. induction variable identification
. region-based analysis and optimization


WEDNESDAY:


7. Data Dependence Analysis (8 hours)
. general introduction
    - flow, anti, output dependence
    - dependence distance, direction vectors
. 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, array reshaping
    - structured data types, C Unions


THURSDAY:


8. Program Restructuring (6 hours)
. vectorization
    - reductions
    - strip mining
. parallelization
    - scheduling
. loop interchanging
. tiling
. skewing
. non-loop parallelism
. performance modeling


9. Guest Lecture: Architecture-Specific Optimization (2 hours)
. Intel i860 architecture
. loop transformations
. use of distance information
. function inlining
. software pipelining


FRIDAY:


10. 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


11. Run Time Parallelism (2 hours)
. run-time scheduling of parallel code


12. Guest Lecture: Code Generation and Program Optimization (4 hours)
. eager execution
. code scheduling
. register assignment
. putting it all together


13. Crystal Ball: Current Research and Future Potential
. compiling for distributed memory computers
. compiling for massively parallel SIMD architectures
. interactive programming environments
. static analysis for debugging parallel programs






WHO CAN BENEFIT


This course is designed for compiler designers and implementers as well
as those who need an understanding of these techniques to design
effective high performance computer systems. In addition, those who
plan to do research into compilers or programming environments will find
this course an essential introduction into the latest work in this area.
Finally, the great need for trained compiler writers means that
educators and professors are needed who can introduce much of this
material to students in advanced graduate or senior undergraduate
compiler courses, or in their research programs; this course will be
invaluable to those professors.




WHAT YOU WILL LEARN


Compiler developers, both experienced and novice, will learn how to
apply the latest optimization techniques for their particular target
machines. Language designers will learn how particular language
features will help or hinder the optimization process. Computer
architects will learn the capabilities of compilers and how to optimize
a system design with the compiler in mind. Instructors will learn
advanced compiler optimizations as a basis for graduate coursework.
Researchers will learn how their projects can benefit from the advanced
analysis techniques presented here.




COURSE SCHEDULE


Dates: Monday-Friday; June 10-14, 1991


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 and Wine Tasting: Tuesday evening at Montinore Vineyards.
Transportation wil be provided. Extra tickets are $15 each.


Banquet: Thursday night. Extra tickets are $35 each.


Optional Labs: Students will be given the opportunity to experiment
with research compiler tools developed at the Oregon Graduate Institute
during evenings and other free time in the schedule, in a lab located
in the hotel.




GENERAL INFORMATION


TO REGISTER: Early registration is recommended since enrollment is
limited. Complete and return the registration form (below) or phone
(503) 690-1233, or send electronic mail to tfogarty@admin.ogi.edu.


LOCATION: All sessions will be held at the Portland Marriott, which is
located on the riverfront in Portland, Oregon. Portland in June is
sunny, warm and usually dry, with the days averaging in the mid-70's
and evenings slightly cooler. The Marriott Hotel is located across
from the Riverfront Park, and is near all the downtown attractions,
including shops, restaurants, theatres and museums. The course is
scheduled to coincide with the Portland Rose Festival, which includes
many special events; attendees may wish to take advantage of weekend
travel fares and stay over a Saturday night to enjoy the Festival.
The Grande Floral Parade is Saturday June 8 at 9:00 AM. The parade
is the nation's second largest all floral parade. Upon request, a
brochure describing all Rose Festival events will be mailed to you.
Contact Terri Fogarty (503) 690-1153 or tfogarty@admin.ogi.edi.




LODGING: Sleeping accomodations are available at the Portland Marriott.
All reservations should be made in advance by telephoning the
registration desk at (503) 226-7600 or (800) 228-9290. Be sure to
mention that you are attending the Oregon Graduate Institute Summer
Tutorial on High Performance Compilers. A block of rooms has been
reserved at a special rate of $105.00 per room, for one to four persons
per room, for Sunday through Friday nights. Public parking is available
nearby for those who will stay locally, and bus service is available
from other city and suburban locations. You are responsible for making
your own room reservations. Remember to make your reservations early,
since this is Rose Festival time (note: the special hotel room rate
may not apply over the weekend).




TRAVEL ARRANGEMENTS: Portland's International Airport is served by
Alaska, America West, American, Continental, Delta, Horizon, Northwest,
TWA, USAir and United airlines. Limousine service from the airport to
the Portland Marriott or most downtown hotels is available for about $10.00.




FEE: The fee for the program is $1095. This includes:
. Five days of instruction
. Complete course notes and comprehensive bibliography
. Daily lunches
. Complimentary refreshments
. Banquet Dinner
. Wine tasting and hors d'oeuvres at Montinore Vineyards
    (transportation will be provided)


A 10% discount is given to each participant when three or more are
registering at the same time from the same organization.


CANCELLATION POLICY: Refund of the registration fee cannot be given
after May 1, 1991. If you register and find that you cannot attend,
you may send a substitute in your place. Please call to let us know
of the change. If OGI is forced to cancel a course for any reason,
liability is limited to the return of the paid registration fee.


INFORMATION: For additional information regarding registration
procedures, lodging or travel, please contact Terri Fogarty, Conference
Administrator, at (503) 690-1233, or electronically at
tfogarty@admin.ogi.edu. For information regarding course content,
contact Michael Wolfe at (503) 690-1153 or electronically at
mwolfe@cse.ogi.edu.




ABOUT THE INSTRUCTOR


Michael Wolfe, Ph.D., is an Associate Professor of Computer Science and
Engineering at the Oregon Graduate Institute of Science and Technology.
He has extensive commercial and research experience in compilers for
high performance computer systems, program transformations, programming
environments, and parallel computer architectures for scientific
computation. Dr. Wolfe received his Ph.D. from the University of
Illinois in 1982, where he was one of the key developers in the
Parafrase project. He was a co-founder of Kuck and Associates, Inc., a
leading developer of commercial parallelizing compiler tools, and served
as Vice President of Language Software until 1988, when he moved to OGI.
He has served on the program committee of the 1988 ACM Symposium on
Principles of Programming Languages, and is program co-chair of the
1991 Distributed Memory Computer Conference, and is on the editorial
board of the Pitman/MIT Press series on Research Monographs in Parallel and
Distributed Computing. He has been invited to give numerous lectures in
the USA and Europe, and has given tutorials at the SIGPLAN '89
Conference on Programming Languags Design and Implementation, at the
1990 SIGPLAN Symposium on Principles and Practices of Parallel
Programming, and at the 1989 and 1990 Illinois Summer Institute on
Parallelizing Compilers. He is the author of the 1989 monograph
"Optimizing Supercompilers for Supercomputers," and many papers and book
chapters on advanced compiler optimizations.




GUEST LECTURERS


Larry Meadows is Senior Software Engineer at The Portland Group, Inc. (PGI)
in Wilsonville, Oregon, a company formed in 1989 to provide high performance
compilers and programming environments for new supercomputer-like
architectures. He is responsible for directing PGI's engineering effort and
for implementing the vector optimization portions of PGI's compilers.
Previously, he has been responsible for compiler and vectorizer development
at FPS Computing and Mentor Graphics.


Ross A. Towle is a member of the technical staff at Silicon Graphics, Inc.
His interests are in compilers and architectures for high performance
computer systems. Dr. Towle received his Ph.D. from the University of
Illinois in 1976 where he worked on the vectorization of loops containing
conditional operations. He was the compiler manager for the Burroughs
Scientific Processor. He also co-founded and was compiler manager at
Cydrome. Later he co-founded and served as President of Apogee Software.
--------------------------------------------------------------------------


Registration Form


Summer Intensive Tutorial and Workshop on
High Performance Compilers


Fee $1095. Add $35 for each additional banquet ticket _____________________
                      Add $15 for each additional reception ticket _____________________


Type of registration /__/ single /__/ multiple (see discount schedule)


Method of payment /__/ VISA /__/ Mastercard


Card #_______________________ Expiration Date ______________________


/__/ Check enclosed. Please make check payable to the
                          Oregon Graduate Institute


/__/ Bill by organization, purchase order number ____________________


Name and title ______________________________________________________________


Name and title ______________________________________________________________


Name and title ______________________________________________________________


Company Name ______________________________________________________________


Address ______________________________________________________________


City _______________________ State _______________ Zip ____________


Phone _______________________ Evenings _____________________________


/__/ Please send me a brochure on Portland and the Rose Festival


Mail completed form and payment to:


Oregon Graduate Institute of Science & Technology
Office of Continuing Education
19600 N.W. von Neumann Drive
Beaverton, OR 97006-1999
--


Post a followup to this message

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