22C:177 (22M:178) Parallel and High Performance Algorithms  in Scientific Computing

Professor: Dr. Suely Oliveira
Office: MacLean Hall 101H - phone: 335-0731

Syllabus



PREREQUISITES

Any CS  or mathematics (numerical or linear algebra) course.
Knowledge of one  Programming language (C, Fortran, C++, Java, Pascal, etc...)



LECTURE HANDOUTS & HOMEWORKS
 
  • Week 1 :  Introduction to Parallel Computers and Programming.

  • Handout 1 (ps)       Handout 1 (pdf)   --  Using the SGI Power Challenge
    Handout 2 (ps):      Handout 2 (pdf)   --  Parallel Architectures.
    Handout 3 (ps)      Handout 3 (pdf)   -- Introduction to Parallel Programming; Welcome!
    Reading:   Chapters 2 and 3 ( Reference [1] ) and Chapters 1 and 2  (Reference [2])
    Article to read: "The Recent Revolution in High-Performance Computing" (by Horst D. Simon)
     
  • Week  2 :  Programming in Parallel Basics.

  • An example: trapezoidal rule.
    Reading:  Chapters  4  ( Reference [1])  and   4.1-4.2 (Reference [3])
     
  • Week 3 : More about Parallel Programming.

  • Handout 4 (ps)    Handoutt 4 (pdf) :  Collective Communication.
    Assignment 1 due date: February 16th.
    Reading: Chapter 5 ( Reference [1]).
     
  • Week 4 :  Performance, Speed-up,  Efficiency,

  • Overhead,  Scalability. Performance modeling.
     
  • Week 5  : Matrix-matrix product. Communicators.

  • Reading: Chapter 7 (Reference [1]).
    Handout 5 (ps)    Handout 5 (pdf): Comm. and Topologies
     
  • Week 6: Sequential and Paralllel algorithms for solving

  • Triangular systems of equations. Fan-in and Fan-out algorithms.
    Handout 6 (ps)    Handout 6 (pdf):  Backward Substitution
     
  • Week 7 :   Cholesky Factorization, fan-in and fan-out

  • algorithms, elimination trees, Sparse matrices algorithms, Parallel
    fine-grain and coarse grain algorithms, multifrontal methods.
    Assignment 2 due  date:  March 21st.
     
  • Week  8:  More about MPI.

  • Handout 7 (ps)    Handout 7 (pdf): Dealing with I/O.
     Handout 8 (ps)     Handout 8 (pdf): Grouping Data .
     
  • Week 9 :  Spring Break

  •  
  • Week 10 : LU factorization in parallel.

  • Assignment 3 due date:  April 6th
     
  •  Week  11:   Iterative Methods for Linear Systems.

  • Handout 9 (ps)    Handout 9 (pdf):  Classical Iterative Methods.
    Application: Laplace Equation in Parallel.
    Assignment 4  due date:   ???
     
  • Week 12 : Iterative Methods (Sequential Algorihtms

  • and Parallelization Issues).
    Handout 10 (ps)  Handout 10(pdf): Krylov Subspace Methods.
     
  • Week 13 (04/9-04/13):  Other topics on parallel programming.

  •  
  • Week 14 (04/16-04/20):  Multigrid and Parallelism (papers)

  •  
  • Week 15 (04/23-04/27): Graph Partitioning and Parallelism (papers)

  •  
  • Week  16 (04/30-05/4):  Parallelism and Applications (papers)

  •  

     

    Final Exam:  Thursday May 10th (7:30 am). Room MLH B13).
    Note: Most of our Final exam will be take home; bring that part
    with you to the classroom on May 10th at 7:30 am.


    COURSE DESCRIPTION: This is a graduate class on Parallel Algorithms, but advanced undergraduate students will be able to take this class without any problems. All the material  is covered starting from  sequential implementation. We will teach how to program in parallel in the first four weeks of the course; afterwards we will concentrate on parallel ideas and algorithms, and the homeworks will cover parallel implementations for those algorithms. I first programmed in parallel in 1986; ten years later,  I taught a parallel algorithms class at Texas A&M University.  Because this is an active area of research  I always  cover different  topics. Depending on the interest of the class we may change the syllabus slightly.

    TOPICS:  In this class we aim to cover parallel methods useful in various areas of applications. For example Direct Methods and Iterative Methods for solving systems, and the diverse issues related to matrix factorizations in the parallel computing context (elimination trees for example). Some of the systems of equations we solve  represent discretizations of differential equations from Science and Engineering problems, but no background in differential equations is necessary for this course. We also cover other topics which are useful in the understanding of parallel algorithm design.

    PROJECT: Your grade will be 60% from assignments, 20% from your project and 20% from a final exam. The project is an important part of this course. We will be working in groups and have presentations in the classroom about some of the projects.

    TEXTBOOK:   Parallel Programming with MPI (Peter Pacheco) available at the IMU bookstore.

    OTHER  READING MATERIAL
     

  • "The Recent Revolution in High-Performance Computing" (by Horst D. Simon)

  •  
  • Parallel Numerical Linear Algebra ( by James W. Demmel, Michael  T. Heath and Henk A. van der Vorst)

  •  
  • MPI The Complete Reference  (by Snier, Otto, Huss-Lederman, Walker, Dongarra)

  • SIMILAR COURSES ELSEWHERE

    MIT
    U. California, Berkeley (1998)
    U. California, Berkeley (1999)
    U. Colorado, Boulder
    U. of Illinois
    Cornell University
    U. Tennessee, Knoxville

    BOOKS ON RESERVE:  For sequential algorithms we will we will use various books, a few papers, and also my own handouts . The books below are on reserve at the Division of Mathematical Sciences Library ( first level of MacLean Hall). Most of the books listed below are only reference books and you are not required to buy them for this course.  I will mention in class when you should consult these books.

    1
    P. Pacheco.

    Parallel Programming with MPI.
    Morgan Kaufmann Publishers, Inc, San Francisco, 1997.
    2
    J. Dongarra, I. Duff, Sorensen, D., and H. Van der Vorst.

    Numerical Linear Algebra for High-Performance Computers.
    SIAM, Philadelphia, PA, 1998.
    3
    V. Kumar, A. Grama, A. Gupta, and G. Karypis.

    Introduction to Parallel Computing.
    Benjamin/Cummings, 1994.
    4
    M. Snir, S. Otto, S. Huss-Lederman, D. Walker, and J. Dongarra.

    MPI:The Complete Reference.
    MIT Press, Boston, 1996.
    5
    James W. Demmel.

    Applied Numerical Linear Algebra.
    SIAM Publ., Philadelphia, PA, 1997.
    6
    G. W. Stewart.

    Afternotes on numerical analysis.
    Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 1996.
    7
    L. N. Trefethen and D. Bau, III.

    Numerical Linear Algebra.
    SIAM, Philadelphia, 1997.


    OTHER LINKS:

    Notes on SGI power Challenge
    to login :  telnet silicon.weeg.uiowa.edu
    support staff: http://www.uiowa.edu/~itsarcs/staff.html

    How to Submit your programs electronically

    Matlab can be used for plots or sequential programming:
        Matlab
        Matlab Help Desk (local access file: file:/usr/apps/matlab/=/help/helpdesk.html )                                          ):

    Programming Languages you can use for homeworks:
    F77,     Fortran 90  ,        C    and       C++:

    We will cover some MPI commands during the course.
    For more information about MPI check:   Argonne



    I need to hear from anyone who has a disability which may require some modification of seating, testing or other class requirements so that appropriate arrangements may be made. Please see me after class or during my office hours