Parallel Programming (3:1)
The objective of this course is to give you some level of
confidence in parallel programming techniques, algorithms and tools. At the end of the course, you would (we
hope) be in a position to deal with real-life parallel problems and to
explore new avenues of research in the area of parallel programming.
Class

Instructor
Sathish Vadhiyar
Books
- Introduction
to Parallel Computing
by
Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar Publisher:
Addison Wesley; (2003) ISBN: 0-201-64865-2
-
The
Sourcebook of Parallel Computing
by Jack Dongarra (Editor), Ian
Foster, Geoffrey Fox (Editor), Ken Kennedy, Andy White (Editor), Linda
Torczon, Wiliiam Gropp
Publisher: Morgan Kaufmann; (November 2002) ISBN:
1-558-60871-0
-
Numerical
Linear Algebra for High Performance Computers
by
Jack Dongarra, Iain Duff, Danny Sorensen, Henk van der Vorst Publisher:
SIAM; (1998) ISBN: 0-89871-428-1
Syllabus
- Introduction
- Motivations for parallel
programming
- Challenges
- Metrics - speedup,
utilization, efficiency, scalability
- Amdahl's law and
Gustaffson's law
- Parallel architecture
models , physical organization of parallel platforms
- Parallel programming
paradigms, algorithm models
- Communication network
topology in
parallel machines
- Programming using the
Message passing paradigm MPI-1
- Principles of
message-passing programming
- MPI: The Message
Passing Interface
- Point-point,
collectives
- Groups and
communicators
- Process topologies
- Profiling interface
- Collective
communication implementations
- MPI-2 overview
- An extended session on
MPI I/O
- A Few Parallel Programs
- Vibrating string,
Laplace
equation, Molecular dynamics, WaTor
- Programming shared address
space platforms
- OpenMP: A standard for
directive based parallel programming
- hybrid programming
- Parallel Dense Linear algebra
- Solving a system of
linear equations - Gaussian elimination
- Parallel Cholesky
factorization
- Tridiagonal solve
- conjugate gradient
- Parallel Sparse Linear algebra
- Sparse Linear Algebra -
basics and sequential solutions
- parallel steps for
ordering, symbolic factorization, numerical factorization, triangular
solve
- Parallel Kernighan-Lin,
Nested dissection
- sparse iterative
methods
- parallel graph coloring
- Other Topics
- FFT
- Bioinformatics
- Scheduling
Assignments
- Implementation of collective communication algorithms
- Matrix-Matrix Multiplication
- Gauss-Seidel
- Data and Loop Level Parallelism
Links