CIS5930-07 Parallel Computing

Fall 2001, 3 Credit hours

Instructor: Ashok Srinivasan

Room 102C, Carothers Hall
Phone: 644-0559
asriniva@cs.fsu.edu
Course URL: http://www.cs.fsu.edu/~asriniva/courses/parcomp/

Office Hours:
T 3:15 pm - 4:15 pm
W 3:00 pm - 4:00 pm or by appointment
Room 102C, Carothers Hall
Class Hours:
TR 2:00 pm - 3:15 pm, LOV 103

Text book: Designing and Building Parallel Programs, by Ian Foster. Available online at: http://www-unix.mcs.anl.gov/dbpp

Prerequisites:

You should be comfortable programming in C, writing makefiles, and linking to libraries. You should also be familiar with algorithm analysis, and aware of computer architecture features such as CPU, memory, cache, networks, etc.

Course rationale:

This course is meant for graduate students with no background in parallel computing, who wish to learn about (i) some of the interesting research issues in this topic, and (ii) practical aspects of parallel programming. Since I do not assume any knowledge in parallel computing, the first part of the course will quickly introduce you to the topic.

Course objectives:

You will get practical experience in parallel programming. By the end of the course, you should be able to program in the message passing paradigm using MPI and in the shared memory paradigm using OpenMP. The practical aspects will be supplemented with sufficient theory on parallel algorithms. You will also read papers to get acquainted with current research on selected topics.

Course description:

In the first part of this course, we will discuss the following topics from Foster's book: parallel machine and programming models, parallel algorithms, performance models, and parallel languages and tools (including MPI and OpenMP). In the second part of the course, we will discuss papers on topics such as graph partitioning, parallel Monte Carlo, sorting, etc. You are encouraged to suggest topics of interest to you. You will also work on a project.

Grading criteria:

The grade will be based on performance in homework(s) (20%), exam (30%), project (20%), paper presentation (20%), and class participation (10%). The exam will be held around the middle of the semester, once we finish discussing topics of interest from Foster's book. In subsequent lectures, each student will read a paper and present the material in class. Each student will also work on a project that involves parallel programming. You are encouraged to select a project related to your research interests. There will be one or two homeworks too. Please also check the attendance policy to see how absences can affect your grades!

Course policies:

What I expect from the student:

Lecture plan:

Dates Topic Dates Topic
28 Aug - 31 Aug Chapter 1: Parallel computers and computation 22 Oct - 26 Oct Discussion on homework, projects and papers
4 Sep - 7 Sep Chapter 2: Designing parallel algorithms 29 Oct - 2 Nov Discussion on project
10 Sep - 14 Sep Chapter 3: A quantitative basis for design, sections 3.1 - 3.4 5 Nov - 9 Nov Midterm review and midterm
17 Sep - 21 Sep Section 3.7 13 Nov - 16 Nov Paper presentations
24 Sep - 28 Sep Chapter 4: Putting components together, sections 4.1 - 4.3 19 Nov - 21 Nov Paper presentations
1 Oct - 5 Oct Chapter 4: Putting components together, section 4.6 26 Nov - 30 Nov Project presentations
8 Oct - 12 Oct Chapter 8: MPI 3 Dec - 7 Dec Project presentations
15 Oct - 19 Oct OpenMP

Useful links: