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

class-PPP2007.jpg (438768 bytes)

Instructor

Sathish Vadhiyar

Books

Syllabus

    1. Introduction
      1. Motivations for parallel programming
      2. Challenges
      3. Metrics - speedup, utilization, efficiency, scalability
      4. Amdahl's law and Gustaffson's law
      5. Parallel architecture models , physical organization of parallel platforms
      6. Parallel programming paradigms, algorithm models
      7. Communication network topology in parallel machines
    2.  Programming using the Message passing paradigm MPI-1
      1. Principles of message-passing programming
      2. MPI: The Message Passing Interface
      3. Point-point, collectives
      4. Groups and communicators
      5. Process topologies
      6. Profiling interface
      7. Collective communication implementations
      8. MPI-2 overview
      9. An extended session on MPI I/O
    3. A Few Parallel Programs
      1. Vibrating string, Laplace equation, Molecular dynamics, WaTor
    1. Programming shared address space platforms
      1. OpenMP: A standard for directive based parallel programming
      2. hybrid programming
    1. Parallel Dense Linear algebra
      1. Solving a system of linear equations - Gaussian elimination
      2. Parallel Cholesky factorization
      3. Tridiagonal solve
      4. Hessenberg Reduction preliminaries
      5. conjugate gradient
    2. Parallel Sparse Linear algebra
      1. Sparse Linear Algebra - basics and sequential solutions
      2. parallel steps for ordering, symbolic factorization, numerical factorization, triangular solve
      3. Parallel Kernighan-Lin, Nested dissection
      4. sparse iterative methods
      5. parallel graph coloring
      6. multifrontal method
    3. Advanced Topics
      1. Load balancing and scheduling
      2. FFT
      3. Checkpointing
      4. Benchmarks
      5. Others

Assignments

Param Notes - contains information about Param needed for doing the assignments.

  1. Mapping, pt-pt benchmarking, implementing collectives

  2. Parallel Matrix Multiplication

  3. Parallel Ordering Using Kernighan-Lin

  4. MPI I/O

Links