Optimizing Compilers For Modern Architectures Pdf

0 views
Skip to first unread message

Catrin Muzquiz

unread,
Aug 4, 2024, 9:47:10 PM8/4/24
to writagamas
Moderncomputer architectures designed with high-performance microprocessors offer tremendous potential gains in performance over previous designs. Yet their very complexity makes it increasingly difficult to produce efficient code and to realize their full potential. This landmark text from two leaders in the field focuses on the pivotal role that compilers can play in addressing this critical issue.

The basis for all the methods presented in this book is data dependence, a fundamental compiler analysis tool for optimizing programs on high-performance microprocessors and parallel architectures. It enables compiler designers to write compilers that automatically transform simple, sequential programs into forms that can exploit special features of these modern architectures.


The text provides a broad introduction to data dependence, to the many transformation strategies it supports, and to its applications to important optimization problems such as parallelization, compiler memory hierarchy management, and instruction scheduling. The authors demonstrate the importance and wide applicability of dependence-based compiler optimizations and give the compiler writer the basics needed to understand and implement them. They also offer cookbook explanations for transforming applications by hand to computational scientists and engineers who are driven to obtain the best possible performance of their complex applications.



The approaches presented are based on research conducted over the past two decades, emphasizing the strategies implemented in research prototypes at Rice University and in several associated commercial systems. Randy Allen and Ken Kennedy have provided an indispensable resource for researchers, practicing professionals, and graduate students engaged in designing and optimizing compilers for modern computer architectures.


Randy Allen received his A.B. summa cum laude in chemistry from Harvard University and his M.A. and Ph.D. in mathematical sciences from Rice University. After serving a research fellowship at Rice, Dr. Allen entered the practical world of industrial compiler construction. His career has spanned research, advanced development, and management at Ardent Computers, Sun Microsystems, Chronologic Simulation, Synopsys, and CynApps. He has authored or coauthored 15 conference and journal papers on computer optimization, restructuring compilers, and hardware simulation, and has served on program committees for Supercomputing and the Conference on Programming Language and Design Implementation. Mr. Allen is CEO and President of Catalytic Compilers.


Professor Kennedy has published over 150 technical articles and supervised 34 Ph.D. dissertations on programming support software for high-performance computer systems. In recognition of his contributions to software for high-performance computation, he received the 1995 W. Wallace McDowell Award, the highest research award of the IEEE Computer Society. In 1999, he was named the third recipient of the ACM SIGPLAN Programming Languages Achievement Award.


Please note: This course is open to CS and ECE graduate students. Other students may be admitted by the permission of the instructor; please attend the first few classes to see if you're interested. The instructor may put an upper bound onthe total number of students in order to ensure good in-class discussion and sufficient "face-time" for project meetings.


This course is not intended to be your first compilers course: it is gearedtoward students who have already had such a course as undergraduates.If you have not taken a compilers course already, it is still possible totake this course provided that you are willing to spend some additional timecatching up on your own. It will also be helpful if you have some familiaritywith the features of modern processor architectures (e.g., the memoryhierarchy, pipelining, branch prediction, and instruction issue mechanisms).If you feel uncertain about whether you are adequately prepared to take thisclass, please discuss with the instructor.


Homeworks are done in groups of two, with a single writeup turned in per group.For the projects, we prefer that you work in groups of two, althoughgroups of three may be permitted depending on the scale of the project(ask the instructor for permission before forming a group of three).


The course is being taught by Professor Seth Copen Goldstein.The teaching assistant is David Koes.The course administrator is Marilyn Walgora. For office hours, locations, email, etc. see the general information page.


ObjectivesThe compiler is the programmer's most important tool. It gives theprogrammer the freedom to write practical programs in a high-level programminglanguage while still achieving good execution times and efficient use of space.In fact, compilers are so important that new computer architecturesare developed in tandem with new compiler technology. It is only slightlyoverstating the case to say that much of today's advances in computerarchitecture are driven by compilers. Furthermore, new architectures are neversold without a companion compiler. This means that for just about everycomputer architecture company, one of the most effective ways to increase salesis to produce a better optimizing compiler, thereby increasing the claimedperformance of the new processor architecture.


In this course, we will study the fundamentals of compiler optimization, andwill build upon these fundamentals to address issues in state-of-the-artcommercial and research machines. Topics include: intermediate representations,basic blocks and flow graphs, data flow analysis, dependence analysis, partial evaluation andredundancy elimination, loop optimizations, register allocation, instructionscheduling, interprocedural analysis, memory hierarchy optimizations,extracting parallelism, and dynamic optimizations. Students will implementsignificant optimizations within the framework of a modern research compiler.




Modern computer architectures designed with high-performance microprocessors offer tremendous potential gains in performance over previous designs. Yet their very complexity makes it increasingly difficult to produce efficient code and to realize their full potential. This landmark text from two leaders in the field focuses on the pivotal role that compilers can play in addressing this critical issue.






The basis for all the methods presented in this book is data dependence, a fundamental compiler analysis tool for optimizing programs on high-performance microprocessors and parallel architectures. It enables compiler designers to write compilers that automatically transform simple, sequential programs into forms that can exploit special features of these modern architectures.






The text provides a broad introduction to data dependence, to the many transformation strategies it supports, and to its applications to important optimization problems such as parallelization, compiler memory hierarchy management, and instruction scheduling. The authors demonstrate the importance and wide applicability of dependence-based compiler optimizations and give the compiler writer the basics needed to understand and implement them. They also offer cookbook explanations for transforming applications by hand to computational scientists and engineers who are driven to obtain the best possible performance of their complex applications.






The approaches presented are based on research conducted over the past two decades, emphasizing the strategies implemented in research prototypes at Rice University and in several associated commercial systems. Randy Allen and Ken Kennedy have provided an indispensable resource for researchers, practicing professionals, and graduate students engaged in designing and optimizing compilers for modern computer architectures.



* Offers a guide to the simple, practical algorithms and approaches that are most effective in real-world, high-performance microprocessor and parallel systems.

* Demonstrates each transformation in worked examples.

* Examines how two case study compilers implement the theories and practices described in each chapter.

* Presents the most complete treatment of memory hierarchy issues of any compiler text.

* Illustrates ordering relationships with dependence graphs throughout the book.

* Applies the techniques to a variety of languages, including Fortran 77, C, hardware definition languages, Fortran 90, and High Performance Fortran.

* Provides extensive references to the most sophisticated algorithms known in research.


Randy Allen received his A.B. summa cum laude in chemistry from Harvard University and his M.A. and Ph.D. in mathematical sciences from Rice University. After serving a research fellowship at Rice, Dr. Allen entered the practical world of industrial compiler construction. His career has spanned research, advanced development, and management at Ardent Computers, Sun Microsystems, Chronologic Simulation, Synopsys, and CynApps. He has authored or coauthored 15 conference and journal papers on computer optimization, restructuring compilers, and hardware simulation, and has served on program committees for Supercomputing and the Conference on Programming Language and Design Implementation. Mr. Allen is CEO and President of Catalytic Compilers.



p> Ken Kennedy is the Ann and John Doerr Professor of Computational Engineering and Director of the Center for High Performance Software Research (HiPerSoft) at Rice University. He is a fellow of the Institute of Electrical and Electronics Engineers, the Association for Computing Machinery, and the American Association for the Advancement of Science and has been a member of the National Academy of Engineering since 1990. From 1997 to 1999, he served as cochair of the President's Information Technology Advisory Committee (PITAC). For his leadership in producing the PITAC report on funding of information technology research, he received the Computing Research Association Distinguished Service Award (1999) and the RCI Seymour Cray HPCC Industry Recognition Award (1999).

3a8082e126
Reply all
Reply to author
Forward
0 new messages