Computer Science 341-02
Parallel Processing

Mount Holyoke College
Fall 2007


Instructor: Jim Teresco, Clapp 220, (413) 538-2509
Electronic mail: domain:, username: jteresco (best contact method)
Class URL: [Link]
Class hour: (Monday 1:30-2:45 or Tuesday 2:40-3:55) and Thursday 2:40-3:55, Clapp 220
Lab meetings: Self-scheduled
Office hours: Monday 2:45-4:00, Thursday 1:00-2:30, 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 will no longer be able to count on faster and faster processors being released on a regular basis. Performance increases will need to come from larger, parallel computer systems. Parallelism complicates everything from computer hardware design to operating systems and compilers to application programming, yet it will become pervasive in the not-too-distant future. 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

There is no required text for the course. We will examine readings from several texts and from the research literature.


Class meetings will consist of a mixture of discussions, labs, and more traditional lectures. Approximately each week, there will be an assignment consisting of some combination of readings from textbooks, readings from research literature, critiques of the readings, programming assignments and written problems. These assignments will form the basis for discussions and lab exercises during class meetings, so it is essential to come to class prepared. Attendance is required at all meetings. Please be prompt.


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 Computer Science Lab's clusters 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 must be arranged through the Dean's office. 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 only one exam - a final at the end of the semester. Details will be announced as the end of the semester approaches.


Grades for individual 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 60% A >= 93% A- >= 90%
Final Exam 15% B+ >= 87% B >= 83% B- >= 80%
Final Project 25% C+ >= 77% C >= 73% C- >= 70%
D+ >= 67% D >= 63% D- >= 60%
F < 60%

Academic Honesty  

Discussion with your classmates of the concepts related to course assignments and exams is an important ingredient in a lively and productive learning 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 a violation of the Honor Code.

Academic dishonesty cases are unpleasant and uncomfortable for everyone involved. Penalties for such violations include failure of at least the assignment in question. A written report will be made to the dean of the College, as required by the Student Handbook. 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.