Computer Science 400
Parallel Processing

Siena College
Fall 2008


Instructor: Dr. James D. Teresco, Roger Bacon 338
Electronic mail: domain:, username: jteresco (best contact method)
Class URL: [Link]
Class meetings: Wednesday 3:35-6:15, Roger Bacon 302
Lab meetings: Self-scheduled
Office hours: Wednesday 1:30-3:00, by appointment


Everything on this syllabus is subject to change. Changes will be announced in class and updated in the online version of the syllabus.

Course Objectives

As processor speeds approach physical limits, we can no longer count on faster and faster processors being released on a regular basis. Performance increases will need to come from parallel computer systems. Parallelism complicates everything from computer hardware design to operating systems and compilers to application programming, yet it is becoming pervasive. This course examines methods, techniques, and languages for parallel programming, libraries and extensions to sequential languages to support parallel programming, parallel computing environments, performance analysis, efficiency and complexity of parallel algorithms, and applications of parallel computation.

Prerequisites Texts

The main text is Parallel Programming in C with MPI and OpenMP, by Michael J. Quinn (McGraw-Hill, 2004, ISBN 0-07-282256-2). There will be readings from this book and from current and historically significant literature.

If you are not familiar with Unix and/or C, you might consider purchasing reference books on each of these. There are many good ones out there.


Students are expected to attend class and participate in discussions. Class meetings will consist of a mixture of discussions, hands-on lab time, and more traditional lectures. Come to class prepared and on time. Assigned readings are listed on the lecture and reading schedule. Lectures will assume you are familiar with the material in the readings. Most lectures will include a small assignment due at the start of the next class. No late submissions of these assignments will be accepted, as they will often be discussed in class on the due date. The notes I use to guide my in-class presentations are available as PDF files linked from the lecture and reading schedule.


Lab assignments will be made weekly and each will include assigned readings and a written and/or a programming component. The number of points available will vary with the complexity of the assignment. You may develop your programs anywhere (Computers in the lab, your own PC, etc.) but grading will be done using the Siena Computer Science cluster unless otherwise specified. It is your responsibility to ensure that your program works on the grading platform. Programming projects will be graded on design, documentation, style, correctness, and efficiency.

Unless otherwise specified, late work may be turned in with a penalty computed as 1.08h%, where h is the number of hours late. Extensions will only be granted in serious situations and requests must be accompanied by appropriate written documentation (e.g., doctor's note). You can find a C program that prints out a table of the late penalties here. Work turned in after solutions have been made available cannot receive credit. All assignments and projects are to be submitted electronically unless otherwise specified. Please submit plain text where appropriate and PDF otherwise. Please avoid other formats such as Word documents. If in doubt about a file format, please check with me first. Keep a copy of all submissions for yourself.


There will be two exams during parts of class meetings and a final at the end of the semester. Details will be announced as the exams approach.

Final Project

For the last part of the semester, the workload of the regular lab assignments will be reduced and you will focus your efforts on a large project on a relevant topic of your own choosing. The project will include a proposal, a progress report, a paper and a presentation. Most projects will also involve significant software development. Details will be made available around mid-semester, but you should expect a series of intermediate due dates during the last few weeks of the semester and a minisymposium where you will present your projects to your classmates. The final project submission will be due on the last day of classes.


Grades for individual exams and assignments are not scaled. Any scaling deemed appropriate will take place at the end of the semester by adjusting the above thresholds. The following thresholds may be adjusted downward (thereby raising grades) but will never be adjusted upward.

Breakdown: Scale:
Weekly Assignments 40% A >= 93% A- >= 90%
Lecture Assignments 5% B+ >= 87% B >= 83% B- >= 80%
Exam 1 10% C+ >= 77% C >= 73% C- >= 70%
Exam 2 10% D+ >= 67% D >= 63% D- >= 60%
Final Exam 15% F < 60%
Final Project 20%

Academic Honesty  

You are encouraged to discuss the concepts related to course assignments and exams with your classmates. This is an essential part of a healthy academic environment. However, work submitted for grading must be your own (or the combined work of group members, for group assignments). Any unauthorized copying or collaboration is considered a breach of academic integrity and will not be tolerated. Academic dishonesty cases are unpleasant and uncomfortable for everyone involved. You are responsible for reading and understanding the College Catalog Statement on Academic Integrity and the Computer Science Department's Academic Integrity statement. The minimum penalties for a first violation will include failure (0 grade) for the assignment or exam in question and the filing of a Academic Integrity Violation Accusation Form. A second violation will result in failure of the course.

If there is any doubt about the degree of collaboration allowed or the permitted sources for a particular assignment, please ask for clarification before collaborating or consulting the source. Any such collaborations or sources must be cited properly.

Pandemic/Emergency Preparedness

In the event of a college closure due to health or other emergency, the course will continue to the best of our ability using the Internet for communication. Details will be made avaiable by email and on the course web site should a college closure occur.