CS 380C: Advanced Topics in Compilers

Fall 2020

Lecture: Monday 10:00AM-1:00PM

Online (via Zoom)

Instructor: Keshav Pingali (pingali@cs.utexas.edu)
Office hours: Monday 3-4PM online

TA: Bozhi You (youbozhi@cs.utexas.edu), Sepideh Maleki (smaleki@cs.utexas.edu)
Office hours: Friday 4-5PM online

Lecture slides
Papers

Assignments link
Projects
Canvas link for assignment submissions and grades
Piazza link for announcements and discussions

 

Course Description

 

     The objective of the course is to study and master advanced techniques for program analysis and optimization on multicore and manycore processors. This semester, our focus is on optimizing machine learning programs for parallel platforms, and on exploiting machine learning to optimize programs.

A detailed breakdown of topics is the following.

        The first one-fourth of the course is a fast recap of classical compiler topics including syntax analysis, intraprocedural and intraprocedural dataflow analysis, and optimization techniques for uniprocessors.

        The second one-fourth of the course covers analysis techniques like dependence and points-to analysis, and transformations such as loop and data reorganization for optimizing performance on multicore and manycore processors.

        The last half of the course consists of presentations by students of papers in two areas: (i) optimizing machine learning applications for parallel platforms, and (ii) exploiting machine learning to optimize programs for any platform. The goal is to address some of the questions raised in this blog post.

Prerequisites

     An undergraduate compiler course or permission of instructor. Programming experience in the context of a larger system is helpful because some of the programming assignments require the use of the LLVM infrastructure.

Coursework

    In the first half of the course, students will do written and programming assignments. There will be one mid-semester exam. In the second half of the course, students will present papers and do a final project. There may be a final exam at the discretion of the instructor. Your course grade will depend on your performance in the assignments (30%), class presentations (15%), mid-semester exam (15%) and final project/exam (40%).

 

Academic honesty policy

You may discuss concepts with classmates, but all written work and programming assignments must be your own or your project team's work when teamwork is permitted. You may not search online for existing implementations of algorithms related to the programming assignments, even as a reference. Students caught cheating will automatically fail the course and will be reported to the university. If in doubt about the ethics of any particular action, talk to the instructor or the TA.

Notice about students with disabilities

The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Division of Diversity and Community Engagement Services for Students with Disabilities at 512-471-6529.