Description

CS/ECE 560 introduces students to the concept of representing computations mathematically in order to automatically parallelize and otherwise transform such computations to improve performance. In the current computing climate with the increased complexity of memory hierarchy and levels of parallelism, the development of techniques to automate the generation of code that can effectively use such architecture features is critical.

In CS/ECE 560 students parallelize and optimize the performance of important scientific computing kernels such as dense linear algebra computations, protein string matching, and stencil computations such as those that appear in earth science simulations. Students then learn about the polyhedral framework for automating such parallelization and performance optimization. This is all done through homeworks, and a full term project. Students will also be responsible for presenting the lecture material in class.

 
Instructor:
Sanjay Rajopadhye
Office: 340 CS Building
Office Hours: see shedule
Email: Sanjay.Rajopadhye@colostate.edu
Lecture Time and Place:
9:00-12:0, M T H F, CompSci Room 425

Prerequisites

CS 453 compilers or CS 475 parallel programming or equivalent courses at another institution are prerequisites for this course. In order to understand the material in this course, you will need to have a good working knowledge of C/C++ and OpenMP parallel programming. Additionally, you should have a decent math background in discrete math and linear algebra.

Textbook

There is no required textbook for this course. All of the required reading material will be provided online.

Grading

Here are the formally graded elements of the course and associated weighting:

Activity Weight
Homework Assignments 35 %
Class Presentations 25 %
Project 40 %
Final grades are determined by the weighted sum of points earned in each of these areas. The tentative grading scale is: ≥ 90 is an A, ≥ 88 is an A-, ≥86 is a B+, ≥80 is a B, ≥78 is a B-, ≥76 is a C+, ≥70 is a C, ≥60 is a D, and <60 is an F.

To pass this course, you must have at least a 50% average each of the following parts of the course: homework assignments, presentations, and the final project. For example, a 100% in the homework and project grades combined with a 49% class presentation will NOT result in a passing grade.

Late and Makeup Policy

Since the class is only four weeks long, no late work will be accepted

Important Dates

Project proposal Friday, July 13, noon mountain time
Project intermediate report Monday, July 23, noon mountain time
Project final paper , August 3, 11:59pm mountain time

Class Participation

All students taking this course are expected to participate actively. This includes asking and responding to questions.

Students are also expected to read the announcements/news on the main course web page, postings to the discussion board, and the progress page every day for any updates.

Professional Conduct

All students are expected to conduct themselves professionally. We (the instructors and GTAs) assume you are familiar with the policies in the student information sheet for the department. The course will adhere to the Academic Integrity Policy of the Colorado State University General Catalog and the Student Conduct Code, which states that "As a student at Colorado State University, I recognize my active role in building a Campus of Character. This includes my commitment to honesty, integrity, and responsibility within the campus community. As such, I will refrain from acts of academic misconduct." In CS/ECE 560, you can talk with other students about the homeworks, but you cannot copy answers from each other. One good rule of thumb is to not take notes while talking with other students in the class. Just discuss the issues and then go work on your own homework.

Additionally, we consider you to be computing professionals. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct. There is also a code of conduct for the Computer Science Department.