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:
- Deadlines: Assignments should be submitted by 3 pm the day they are due. If
you are late, you will get a 20% reduction in points for up to one day
late, and no points after that. Please do not depend on our watches
being exactly synchronized; do submit a few minutes early.
- Cheating: You should not collaborate with anyone in any way
while working on the assignments. Students are expected to uphold the
academic honor code published in "The Florida State University
Bulletin" and the "Student Handbook". Please read the provisions of
the Academic Honor Code: http://www.fsu.edu/Books/Student-Handbook/codes/honor.html.
- Attendance: You should not miss more than three
classes. You will lose 2% of the total grades for the course for 4-5
absences, and 5% for more. In rare cases (such as jury duty and
sickness), an absence may be excused with appropriate
documentation. You should let me know in advance, when possible, and
submit the required documentation. Attendance will be taken when class
begins, and so you will be marked absent if you come late. You will
also be marked absent if you leave before class ends! Furthermore, you are responsible for making up for any materials missed due to absences -- excused or unexcused. A missed exam can be made up only in extremely rare circumstances, and you should discuss it with me well ahead of time.
- ADA: Students with disabilities needing academic accommodation should (1) register with and provide documentation to the Student Disability Center, and (2) bring a letter to the instructor indicating the need for accommodation and what type. This should be done during the first week of class. This syllabus and other class materials will be made available in alternative format upon request.
What I expect from the student:
- I am particularly strict about deadlines and following
instructions. Please read instructions carefully, and schedule your
activities so that you submit assignments well in time. You should check your email and the class web page regularly, and note other announcements, online and in class.
- I expect you
to complete any reading assignments when you come to class, since I
will assume you have learned the material.
- You should participate in the class by asking questions, suggesting ideas, etc.
- In exams, I test knowledge, understanding, and creativity. When you learn some topic, you should not just try to understand the material, but also analyze what would happen if some things were different. For example, if we are studying heaps, it is not sufficient to understand why the heap algorithms have the time complexity that they have, but you should also wonder about why we need the "min-tree" property, etc.
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: