Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!elroy.jpl.nasa.gov!decwrl!world!iecc!compilers-sender From: mwolfe@ogicse.ogi.edu (Michael Wolfe) Newsgroups: comp.compilers Subject: short course: HIGH PERFORMANCE COMPILERS (full) Keywords: courses, optimize Message-ID: <17827@ogicse.ogi.edu> Date: 26 Feb 91 00:33:26 GMT Sender: compilers-sender@iecc.cambridge.ma.us Reply-To: mwolfe@ogicse.ogi.edu (Michael Wolfe) Distribution: comp.compilers Organization: Oregon Graduate Institute, Beaverton, OR Lines: 376 Approved: compilers@iecc.cambridge.ma.us 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 -- Send compilers articles to compilers@iecc.cambridge.ma.us or {ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request. Brought to you by Super Global Mega Corp .com