15-849C: Parallel Computing
Instructor: Guy E. Blelloch
Credit: 1 Graduate Core Unit or 12 University units
Time and place: M-W 10:30-11:50, Wean 4615A
This course will cover various topics in parallel computing including
parallel languages and parallel algorithms. The class will look at
both theoretical and practical issues, and will include programming
assignments on various parallel machines. The course should be
appropriate for graduate students in all areas and for advanced
undergraduates.
Topics to be covered:
- Algorithms
- Models
- Techniques
- Sorting and Searching
- Graph algorithms
- Numerical algorithms
- Computational geometry
- Programming Models
- Shared memory
- Message Passing
- Data Parallel
- Automatic parallelization
- Applications (case studies)
- Protein folding
- Earthquake simulation
Assignments:
Some links:
- Machine pointers for assignment 1
- Resources on parallel computing
- Information on Pthreads (shared memory programming)
- Information on MPI
- Information on PSC (and using the T3E)
Schedule:
Week |
Topic |
Sep 14, 16 |
Models and emulations |
Sep 21, 23 |
Basic parallel algorithms and techniques |
Sept 28, 30 |
Sorting, searching and trees |
Oct 5, 7 |
Graph Algorithms |
Oct 14 |
Geometric Algorithms |
Oct 19, 21 |
Numerical/Scientific Algorithms |
Oct 26, 28 |
Shared Memory Programming |
Nov 2, 4 |
Message Passing |
Nov 9, 11 |
Data-parallel programming |
Nov 16, 18 |
Futures and automatic parallelism. |
Nov 23 |
Applications |
Nov 30, Dec 2 |
Advanced topics, overview |
Readings
There will be no textbook. The following list of readings will
be added to as I hand them out.
-
Parallel Algorithms.
Guy Blelloch and Bruce Maggs.
In the Computer Science and Engineering Handbook.
CRC Press, 1996.
-
Introduction to Parallel Algorithms: Arrays, Trees and
Hypecubes.
Tom Leighton.
Morgan Kaufmann, 1992.
- BSP Machine parameters
- Cray T3E overview
- List Ranking and List Scan on the CRAY C-90. Margaret Reid-Miller. Journal of Computer and System Sciences, December 1996.
-
Chapters 3 (Merging) and 4 (Sorting) from "The Design and Analysis of Parallel Algorithms"
by Selim Akl. Prentice-Hall, 1989.
-
Fast Parallel Sorting under LogP: Experiences with the CM5.
A. C. Dusseau, D. Culler, K. Schauser, R. Martin.
-
Numerical Algorithms
-
Chapter 3 (pages 108--119) of "An Introduction to Parallel Algorithms" by Joseph Jaja.
This is a reading on the Euler Tour technique.
-
Getting Started with Posix Threads. Here is a local poscript version (since the link can be quite slow).
-
Space-Efficient Implementation of Nested Parallelism
-
A User's Guide to MPI, by Peter Pacheco --- this paper is a draft and has some bugs. After reading it I would
suggest The Design of a Standard Message-Passing Interface for Distributed Memory
Concurrent Computers instead (or in addition).
-
Simulating Physical Phenomena (the finite-volume method and itterative solutions to linear systems of equations).
Grading
Grading will be broken down as follows:
4 Homeworks: |
50% |
Midterm: |
20% |
Final Project: |
30% |
Guy Blelloch, blelloch@cs.cmu.edu.