ECS 231, Winter 2013
Large Scale Scientific Computing


Instructor:
Zhaojun Bai
3005 Kemper Hall
530-752-4874
bai at cs.ucdavis.edu

Lecture:
1:40pm - 3:00pm, Tue. Thur.
1070 Bainer

Office Hours :

Prerequisite
ECS130 or consent of instructor. A solid knowledge of undergraduate linear algebra, and some experience with writing computer programs, such as Matlab, C and/or Fortran.

Catalog Description
Algorithms and techniques for large-scale scientific computation, including high performance computing kernels, iterative subspace projection methods, fast Fourier transform, Poisson solvers and spectral graph partition algorithms.

Goals of the Course
To learn about concepts and general techniques that are essential for modern methods, and to be able to apply them in a particular domain of large-scale scientific computation.

Syllabus
  1. Review of matrix operations and decompositions
  2. Floating point arithmetic
  3. HPC kernels (BLAS, LAPACK, multicore and GPU computing)
  4. Subspace projection methods for solving large scale linear systems and eigenvalue problems
  5. Preconditioning techniques
  6. Selected topics, such as
    • Steepest descent and conjugate gradient methods
    • Graph partition and data clustering by spectral methods
    • Fast Poisson solvers

Textbook
Lecture Notes

Grading:

On-line Info:
Lecture schedule and handouts
  1. 1/8 Instruction begins
    • Course organization
    • Introduction
    • Handout #1 (updated 10:16am, 1/8)
  2. 1/10
    • Introduction of parallel computing, Berkeley CS267 (Video of Demmel's lecture 1/17/2012)
    • Prof. Demmel's slides (pdf)
  3. 1/15
    • Review: matrix operations and frequently used matrix decompositions
    • Handout #2
  4. 1/17
  5. 1/22
    • Float-point numbers, arithmetic and error analysis (cont'd)
    • Reading: Goldberg's article on ``What Every Computer Scientist should know about floating-point arithmetic'' (pdf file)
    • Memory hierarchies and processor features
      (video 5:26--51:20 of Demmel's lecture 1/19/2012)
    • Prof. Demmel's slides (pdf)
  6. 1/24
  7. 1/29
    • Large-scale linear solvers I: a framework for subspace projection methods
    • Handout #5
  8. 1/31
    • Large-scale linear solvers II: Krylov subspace, Arnoldi process and GMRES
    • Handout #6
  9. 2/5
  10. 2/7
    • Large-scale eigen solvers I: basic theory and algorithms
    • Handout #8

Announcements
  1. 1/31: XSEDE offers FREE online parallel computing course
    Students who are interested in using parallel computers efficiently and productively are invited to register for a FREE online course sponsored by the Extreme Science and Engineering Discovery Environment (XSEDE)(xsede.org).
    The online course is an adaptation of the class Applications of Parallel Computers taught by professor Jim Demmel at U.C. Berkeley in Spring 2012. Lecture materials, quizzes, and programming exercises will be rolled out weekly from Feb. 14 to May 2. For more information on the topics covered in the course, see https://www.cac.cornell.edu/VW/APC/
    As a prerequisite, students should have some programming experience in C or similar language. Enrollment is limited to the first 300 students and registration will close Feb. 13. To enroll, first visit https://portal.xsede.org/ to create an XSEDE portal account; then visit https://portal.xsede.org/course-calendar to register for the Applications of Parallel Computers course. Registered students will receive accounts to access XSEDE computing resources and consulting help. Those who successfully complete all quizzes and programming assignments will receive an XSEDE certificate of completion.
Homeworks and projects
  1. Homework #1: exercises in Handouts #1 and #2, due January 24
  2. Homework #2, due February 5
  3. Homework #3, Due February 19

Online resources:
Comments and questions sent to bai at cs.ucdavis.edu.