MIT Department of Electrical Engineering & Computer Science

E E C S

EECS Spring 1998 Catalogue Supplement

6.891 Advance Program Analysis and Optimizations: Compiling for Modern Architectures (H)

TR 1-2:30, 24-115
Prof. Saman Amarasinghe, NE43-620, x8879
3-0-9
Prereq: 6.035

Modern compilers need to perform aggressive optimizations to take advantage of many features in contemporary computer architectures. Success of a computer architecture heavily depends on the ability of the compiler to support and exploit its features. For example, optimizations such parallelization and vectorization are required to obtain good performance in superscalar processors and vector supercomputers respectively. In this course we will discuss compiler optimizations for a wide verity of modern architectures. Some of the compiler optimizations we will study are:

* Obtaining instruction level parallelism for superscalars and VLIW processors
* Vectorization techniques for vector and multimedia processors
* Extracting coarse-grain parallelism for SMPs
* Communication optimization for MPPs
* Optimizations for the memory hierarchy of NUMA machines
* Power and code-size optimizations for embedded processors
* Configuration selection and program synthesis for customizable architectures

The course has the following requirements:

* Class Participation: The class will meet twice a week. These meetings will be devoted mainly to paper discussions, few lectures and student project presentations. Students are expected to read the assigned papers, dissect them, actively participate in class discussions, and articulate a point of view in class that shows you are thinking independently and critically about the issues.

* Paper Presentation: Each student will give a class presentation based on a paper or set of papers from the literature. The presentation is followed by a class discussion of the topic, which will be led by the student.

* Programming Assignments: There will be one or two structured programming assignments at the beginning of the term to familiarize the students with the SUIF compiler development tools.

* Group Project: This is a semester-long group assignment in which each group will complete a significant compiler project. Students will design, implement and test a set of compiler optimizations for a given architecture. Groups are expected to complete a 2-page project proposal, a 5-page mid-term review, a 20-minute class presentation and an 8-10 page "conference paper". In addition, each group will have a weekly meeting with the TA.

* Final Exam: There will be a take-home final.

The weights assigned to each of the course requirements are tentatively set as follows:

15% Class Participation
20% Paper Presentation
5% Programming Assignments
40% Group Project
20% Final Exam

The enrollment will be limited to 30 students.


URL of this page: http://www-eecs.mit.edu/AY97-98/spring-cat/6891.html
Editor: Mibsy Brooks  | Created: Jan 16, 1998  | Modified: Jan 20, 1998
Related page: EECS Spring 1998 Catalogue Supplement
To MIT EECS home page  | Your comments and inquiries are welcome.