| 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. |
|
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.
There is no required textbook for this course. All of the required reading material will be provided online.
Here are the formally graded elements of the course and associated weighting:
| Activity | Weight |
|---|---|
| Homework Assignments | 35 % |
| Class Presentations | 25 % |
| Project | 40 % |
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.
Since the class is only four weeks long, no late work will be accepted
| 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 |
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.
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.