Spring 2013

ACMS 40212/60212: Advanced Scientific Computing

Class time: MWF 9:35pm - 10:25am.

Classroom: Jordan Hall of Science 310

Office hours: W 3:00 pm - 4:00pm, HH 226

Course Syllabus


MPI


U1010 UNIX for beginners

OpenMP


Textbook

  • Introduction to Parallel Computing, Second Edition has been put on reserve in Math. library. The electronic version is also available online at http://link.library.nd.edu/rplow (please contact Math. librarian for access if there is a problem)
  • Sample code is at /afs/crc.nd.edu/user/z/zxu2/Public/ACMS40212-S12 on crc machine.

    Projects and Homework Assignments
    02/06/2013 Project 1
    03/04/2013 Project 02 Homework 01
    03/25/2013 Project 03
    04/15/2013 Project 04
    05/10/2013 Final Project Presentation. When: 5/10/2013 8:00 AM 10:00 AM; Where: 310 Jordan Hall of Science

    Final Projects (subject to change) Final Project Guidelines
    All-pairs Shortest Path Problem (Undergraduate students only)
    Document Classification (Undergraduate students only)
    Bacterial branching growth using diffusive Fisher equations with a cutoff
    Kinetic Monte Carlo simulation using OpenMP
    Implementing RB s Seidel to 2D Laplace equation on GPUs
    Implementing 2D (explicit) high-order accurate finite difference/volume/element method for time dependent PDEs on GPU or using MPI
    Cellular Automata for reaction-diffusion

    Lecture notes
    Lecture 01 Single processor performance
    Additional Reading Software Pipelining of Nested Loops
    Lecture 02 Parallel programming platforms
    Lecture 03 Message-Passing Programming Using MPI (Part 1), (Part 2)
    Supplementary material MPICH2 1.3.1 User Guide Introduction to C/C++ and MPI and PBS
    Lecture 04 Principles of Parallel Algorithm Design (part 1) , (part 2), (part 3), (part 4)
    Supplementary material Pointers (from cplusplus.com), Pointer and Memory (Notes from Stanford) Short notes on dynamic memory allocation ,
    Supplementary material Dynamic load balancing for AMR , AMR for Front Tracking
    Lecture 05 Performance Analysis
    Lecture 06 Parallel Matrix Algorithms (part 1), (part 2), (part 3)
    Readings Scalability of parallel alg. for matrix multiplication
    Supplementary material Short Introduction to Makefile
    Lecture 07 Advanced MPI - process topology
    Lecture 08 Fast Linear Solvers (part 1) , (part 2) , (part 3) , (part 4) , (part 5) , (part 6)
    Supplementary material Walker. Parallel GMRES , Erhel. Parallel GMRES
    Lecture 09 Numerical PDEs
    Lecture 10 GPU Programming
    GPU programming from nvidia developer centers Introduction to GPU Computing , CUDA C Programming Guide
    Lecture 11 OpenMP Programming
    Readings Gaussian Elimination Using OpenMP , LU using OpenMP, LAPACK with OpenMP
    Supplementary material Debugging in Serial and Parallel, Totalview Tutorial



    Previous lecture notes are available here.