Spring 2014

ACMS 40212/60212: Advanced Scientific Computing

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

Classroom: 109 Pasquerilla Center

Office hours: W 4:00 pm - 5:00pm, 173 Hurley

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
    01/31/2014 Project 1 (Due on 02/14)
    02/17/2014 Project 02 (Due on 03/03)
    03/26/2014 Project 03 Homework 01
    04/14/2014 Project 04
    04/29/2014 Project 05
    05/05/2014 8:00am-10:00am Final Project Presentation. (114, Pasquerilla Center)

    Final Projects (subject to change) Final Project Guidelines
    All-pairs Shortest Path Problem (Undergraduate students only)
    Document Classification (Undergraduate students only)
    Monte Carlo Simulation of Buffon's needle problem using GPU (Undergraduate students only) Matlab code of the Monte Carlo Simulation
    Bacterial branching growth using diffusive Fisher equations with a cutoff
    Kinetic Monte Carlo simulation using OpenMP
    Implementing red-black Gauss Seidel to solve 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
    Accelerating numerical solution of Stochastic Differential Equations with CUDA
    Cellular Automata for reaction-diffusion

    Lecture notes
    Lecture 01 Single processor performance
    Lecture 01.1 Pointers (from cplusplus.com), Pointer and Memory (Notes from Stanford) Short notes on dynamic memory allocation,pointer and data structure , Short Introduction to Makefile
    Additional Reading Software Pipelining of Nested Loops Rixner etal, Memory access scheduling
    Lecture 02 Parallel Programming Platforms
    Lecture 03 Message-Passing Programming Using MPI (Part 1), (Part 2) Introduction to C/C++ MPI and PBS
    Additional Reading Tips for writing clean code
    Lecture 04 Principles of Parallel Algorithm Design (part 1) , (part 2), (part 3), (part 4)
    Lecture 05 Parallel Matrix Algorithms (part 1), (part 2), (part 3)
    Lecture 06 Performance Analysis
    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 Debugging in Serial and Parallel, Totalview Tutorial
    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 , CURAND
    Lecture 11 OpenMP Programming
    Readings Gaussian Elimination Using OpenMP , LU using OpenMP, LAPACK with OpenMP



    Previous lecture notes are available here.