CS553: Algorithmic Language Compilers (Compilers for High-Performance Program Generation)

csu-logo
red-line
[Syllabus] [Grading] [Topics] [Assignments] [Home]

Syllabus

Spring 2020
CS553 Compilers for High-Performance Program Generation (currently listed as "Algorithmic Language Compilers") is a graduate class on using effectively modern optimizing compilers. The objective are twofold: learn how (and why) to write optimizable code, to best use the existing tools such as GNU GCC, LLVM or Intel ICC for generating high-performance code; and learn some key concepts in optimizing compilers, such as loop transformations for SIMD vectorization, to better understand the limitations of existing toolchains, and when manual code optimization should be implemented instead of relying on existing tools.
CS553 is geared towards graduate students. However, no prerequesite is needed.

Course Objectives
By the end of the course, students should:

  1. Know key optimizations for performance implemented in current production compilers, such as SIMD vectorization and auto-parallelization
  2. Know how to write optimizable C code, especially regarding how to use pointers without breaking the compiler's optimization
  3. Be autonomous in finding tools to assist with the generation of high-performance code


Prerequisites
There is no explicit prerequesite for this course: material will be introduced as needed. However having passed CSU's CS453 introduction to compiler construction is a plus. Some basic skills on C programming are needed: most of the examples and exercises will be in C/C++.


Instructor Lecture Coordinates
 

Louis-Noel Pouchet
Office: Room 346, Computer Science
Office Hours:
TBD
E-mail: pouchet {AT} colostate.edu


 

Lectures: 5:30-6:45pm Mondays and Wednesdays in CSB425

Assignments

There will be several assignments, each of which graded independently. Further information will be provided when the class starts.
Late and Makeup Policy
Midterm and Finals: Make-up exams are only given for extraordinary circumstances (e.g., illness, family emergency). Students must consult with the instructor as soon as possible, preferably before the start of the exam. Course examination dates are listed on the schedule page; be aware of them and plan accordingly.

All assignments are due at 11:59 PM on the due date. Assignments will be posted at least two weeks in advance, the compiler project will be posted more than two months in advance. The deadlines are strictly enforced, no late submission will be accepted. If for exceptional circumstances as above you are unable to meet an assignment deadline, you must contact the instructor at least 24h before the deadline to discuss your specific situation.



Conduct
All students are expected to be familiar with the policies in the department's student information sheet available here.

This course will adhere to the CSU Academic Integrity Policy as found in the General Catalog and the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.



 


Department of Computer Science, Colorado State University,
Fort Collins, CO 80523 USA
© 2018 Colorado State University