CSC 6750 – Parallel Programming

Fall, 2009

Instructor: Sheikh Ghafoor

Office: Br 412A

Email:

Class Hours: MWF 11:15-12:35

Location: Bruner 405

Office Hours : MW 10:00 – 11:00, T 10:00 - 12:00. Apart from the designated office hours, students are allowed to walk in to my office any time except the following hours: MWF 8:45-10:00, 11:00 – 3:35 and Thursday. If I am not busy with any time pressing work, I will be available for help.

Course Webpage:

Text:

Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers, 2nd Edition by Barry Wilkinson and Michael Allen. Publisher: Prentice Hall. 2005. ISBN: 0-13-140563-2.

Reference:

Introduction to Parallel Computing, 2nd Edition by Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar. Publisher: Addison Wesley. 2003. ISBN: 0-201-64865-2.

Prerequisite:

CSC2300 or CSC2100, CSC2400

Description:

Three hours lecture.

Introduction to parallel computing architectures and programming paradigms. Theoretical and practical aspects of parallel programming and problem solving. Design, development, analysis, and evaluation of parallel algorithms.

Course Objectives:

  1. To introduce principles and concepts of parallel computing techniques using Message Passing Interface (MPI).
  1. To provide hands-on experience in implementing parallel programs on the CSC resources

Attendance:

Attendance is required for this course. If you know you will be absent for a legitimate reason, let the instructor know. If you are sick bring a doctor’s excuse to resolve the absence.

Programming Assignments:

There will be 3 to 5 programming assignments during the semester. In addition there may be few home work assignments. These assignments are to be individual efforts. A student may consult only with the instructor, for help on a programming assignment.

Quizzes:

There will be several in class quizzes.

Tests:

There will be 3 tests during the semester and no comprehensive final. The 3rd test will be considered as final.

Make-up Tests/Quizzes:

If an absence from a quiz is excused, then the average number of points of the other quizzes will be substituted for the missed quiz. If the absence is unexcused, the student will be assigned a score of zero points for the test or quiz. For excused absence from a test, student should make arrangements with the instructor to take the test at another time.

Term Paper:

Students have to write a term paper on a topic related to programming. They have to write a one page proposal for the term paper and have it approved by the instructor. Students have to submit an interim paper before submission of the final paper. The term paper proposal is due October 01, the interim paper is due on December 02, and the final paper is due December 11. The term paper shouldn’t be merely a compilation or survey. It should contain some original thought, ideas or analysis.

Academic Conduct:

Cheating, in particular plagiarism, will result in an automatic failure. Don’t do it.Faking program output counts as cheating! A first offense of cheating on a test, exam, or programming assignment will result in a grade of 0 for that particular activity. Any subsequent offense will result in a grade of F for the course. This includes both the provider of the information as well as the receiver of the information. Any student who violates the university’s, department’s, or class’s academic honesty policy will be reported to the Dean of Students for academic discipline. For details on cheating and plagiarism please refer to

Grading Scale:

A=90-100, B=80-89, C=70-79, D=60-69, F= <60

Point Distribution:

Tests45%

Programming Assignments 30%

Quizzes 15%

Term Paper10%

Total 100%

Students with a disability requiring accommodations should contact the Office of Disability Services (ODS). An accommodation request should be completed as soon as possible, preferably by first week of the course. The ODS is located in the RodenUniversityCenter, Room 112; phone 372-6119.

Tentative Course Topics

Overview

Parallel computers

Measuring performance of parallel algorithms

Message passing computing

MPI tutorial

Embarrassingly parallel computations

Partitioning and divide-and-conquer-strategies

Pipelined computations

Synchronous computations

Load balancing

Numerical algorithms

Sorting algorithms

Note:Should normal classroom activities be disrupted by a flu outbreak, the format for this course may be modified to enable completion. In that event, you will be given new instructions for continuation of the course.