CS 159 Greensheet

Introduction to Parallel Processing

Spring 2007
Instructor: John Avila

Course Title: Introduction to Parallel Processing

Number of Units: 3

Catalog Description:
Major parallel architectures: shared memory, distributed memory, SIMD, MIMD. Parallel algorithms: techniques for scientific applications, measures of performance. Parallel programming: principles and implementations in various languages. Assignments on available parallel and vector computers.
Prerequisite: CS 146 (with a grade of "C-" or better) or instructor consent.


  1. To understand the architecture of various forms of parallel computers
  2. To examine algorithms to take advantage of these forms
  3. To develop parallel programs for a cluster of linux workstations


Barry Wilkinson and Michael Allen
Parallel Programming
Techniques and Applications using Networked Workstations and Parallel Computers (2nd Edition)
Pearson/Prentice Hall (2005)
ISBN: 0-13-140563-2

The plan:

We will cover the first 11 chapters of the text except for Chapter 8. As appropriate, I will bring in material from other sources.

We will have accounts on a Linux cluster here at San Jose State and programming assignments will be carried out on this networked computer system.

Academic Integrity:

Your own commitment to learning, as evidenced by your enrollment at SJSU, and the University's Academic Integrity Policy requires you to be honest in all your academic course work. Faculty members are required to report all infractions to the Office of Student Conduct and Ethical Development. The policy on academic integrity can be found at http://sa.sjsu.edu/student_conduct.

Every assignment that you submit must be your own work. Anyone who copies work from another source or allows another to copy from him or her will be reported to the university resulting in disciplinary action including a failing grade in this class.

Additional Notes:


There will be two midterms; one after we cover Chapter 4, the second after we cover Chapter 9. In addition, there will be a final exam.

Final Exam Schedule
Tuesday, May 22 5:15pm - 7:30pm

Computer facilities:

All students in this course will automatically receive a computing account on a Linux cluster jointly belonging to the Computer Science Department and the Meteorology Department.
The language that we will use for programs on the cluster is C. I will provide all the information you need to be able to do this if you have had Java or C or C++ experience.



The midterms will make up 25% of the grade EACH.
Homework assignments will make up 20% of the grade.
The final exam will make up 30% of the grade
The "bad day" correction:
If your worst midterm has a grade less than your final exam grade, then I will replace that midterm grade with your final exam grade. For example, if your worst midterm grade was 65% and you received 75% on your final exam, then I would give you 75% on your worst midterm as well as your final.
How to compute your grade:
(Total midterm 1 points)/(Total possible midterm 1 points) * 0.25
+ (Total midterm 2 points)/(Total possible midterm 2 points) * 0.25
+ (Total homework points)/(Total possible homework points) * 0.20
+ (Final exam score)/(Total possible final exam score) * 0.30
= raw score.

raw score Final grade
0.90-1.00 A
0.80-0.89 B
0.70-0.79 C
0.60-0.69 D
< 0.60 F
+ and - grades are given for A through C grades if you are at the top or the bottom of the range. There are no + or - grades for D or F grades.


Office hours:

Tuesdays 2:45pm to 5:15pm (MH 218)
Thursdays 2:45pm to 5:15pm (MH 218)

I also encourage you to send me e-mail if you have questions regarding the course.

Office: MacQuarrie 218
e-mail: avila@cs.sjsu.edu
web page: http://www.cs.sjsu.edu/faculty/avila/
Phone: 924-1398 (e-mail is always better)