Syllabus: ECEN 5023-002/CSCI 7143-001: Programming Non-traditional Multiprocessor Systems
Tuesday, Thursday 2:00pm-3:15pm, Room ECEE ECST 1B21


Manish Vachharajani
Office: ECOT 342
Phone: (303)492-0612

Fall 2008 Office hours: TBD, or by appointment


This project-oriented course will focus on developing applications, compilers, and programming strategies for non-traditional multiprocessor systems. Example projects include, but are not limited to, visualizing application behavior on multiprocessor systems, porting a compute-intensive application to execute on a GPU, developing a compiler that compiles matrix routines for a variety of processors, etc. The projects are intentionally open-ended so that students may pursue projects that reflect their career or research interests, the only requirements will be that the project have sufficient scope/difficulty and somehow pertains to non-traditional multiprocessor systems.

Student's have have several workstations with NVIDIA's GeForce 8600 GTS at their disposal for experimentation with GPUs and a small cluster with NVIDIA's Tesla S870. Any other hardware, to which students have access, and which contains a non-traditional multi-processor may also be used for the course.


There is no textbook for this course.


ECEN 5593: Advanced Computer Architecture or ECEN 4593: Advanced Computer Architecture (or equivalent experience) and one of ECEN 5553: Parallel Processing, CSCI 3753: Operating Systems, or CSCI 5573: Advamced Operating Systems, equivalent courses, or equivalent experience. A good understanding of C programming on UNIX systems.


Participation in lectures and discussions - 10%
Assignments - 20%
Project updates - 25%
Final project - 35%
Final project presentations - 10%
(Note: final percentages are subject to change)


The bi-weekly lectures will start off as background material required to understand multiprocessor systems and then will evolve into project group discussion and help sessions.


There will be one or more weekly readings for which students will have to complete a writeup. This writeup is an evaluation of the ideas presented in the paper(s) and a weighing of the merits of the presented ideas. The writeups are not summary book reports that merely paraphrase the papers. Writeups will be graded on a three point scale: 0 for missing assignments, 1 - for poor assignments, and 2 - for well thought out writeups. There will also be mini-programming assignments to familiarize students with the NVIDIA GPU and CUDA.

Final Project

The final project in the course will require students to study some aspect of programming non-traditional multiprocessor systems. The project may investigate properties of existing technology or examine novel concepts. Students are required to craft their own projects, but the instructor will give extensive guidance in project selection.

For the project students will be asked to work in small groups (2-4 students).

The final project submission will be a report and a presentation that clearly explains the study and relevant results. Most projects that examine novel concepts should have a report suitable for submission to an appropriate workshop or conference. Students will receive periodic feedback on their projects before final submission to ensure that they are of high quality.


Students are encouraged to discuss readings, assignments, and projects, but all assignments must be original work with proper citation of outside sources of information. For programming assignments, code sharing is not allowed. Code sharing policies between final project groups must be discussed with me before-hand. Also, please refer to the University of Colorado Honor Code.

Late assignments will be accepted under the following conditions. If prior arrangements are made, the assignment will be accepted with the discussed terms. If an assignment is submitted late, any portion of the assignment whose solution was discussed in class (even indirectly) before the assignment was submitted, will receive no credit. If an assignment is submitted late, any portion of the assignment for which grading has already been completed will also recieve no credit.


I encourage you to make at least one appointment with me during the semester for advice or to discuss research opportunities, research ideas, course suggestions, concerns, or any other topic you feel is appropriate.