### CS595-02: Advanced Scientific Computing, fall 2016 (Thursday 6:25-9:05pm, SB 107)

** Instructor: Hong Zhang,**
Research Professor, Department of Computer Science, IIT.

Email:
hzhang@mcs.anl.gov

**Web Page**: www.mcs.anl.gov/~hzhang/teach/cs595

**Office Hours and Location**: Thur. 3:30 - 5:15pm, SB 235C

** Course Description: **
This course is designed for graduate and upper-level undergraduate students
in the fields of science and engineering.
The objective is to introduce the
essential numerical algorithmic ideas and provide
programming practice on advanced scientific
computer architecture.
The course contains following subjects:

- Overview of parallel computing.
- Parallel and distributed numerical computation.
- Numerical iterative techniques for solving large sparse systems.
- Numerical software design, analysis, implementation and
performance evaluation, including discussions
on the object-oriented programming techniques.

Students are expected to gain hands-on numerical programming experience
on state-of-the-art parallel computers. By the end of the course,
students are required to
apply the algorithms and techniques
learned in the class to projects
either in their own field (particularly encouraged)
or projects suggested by the instructor. Successful course project may
lead to
summer internship at the Argonne National Laboratory.
**Selected examples of student project:**

- "Application of DMNetwork and TS in Transient Stability Simulator for Power Systems", Bikiran Guha and Jianqiao Huang, 2016
- "Hydraulic Transients in Networks", Daniel Adrian Maldonado and Llus Antoni Jimenez Rugama, 2014
- "Implementation and parallelization of grid-matched astrometry", M. Otten, A. Seymour and M. Warren, 2012
- "Simulation of Microstructures on Parallel Machine Using PETSc", A. K. Barue, 2010
- "Three Phase Instantaneous Time Domain Simulation of Electiric Power Systems Using PETSc", S. Abhyankar, 2008
- "Build a Low Cost Parallel Computing Cluster", N. Johnston and M. McCourt, 2006

**Prerequisites:
**Advanced calculus, linear algebra, background on numerical
computing.
Programming skill.

Grading: Homework: 40%, Class
participation: 10%, Final project: 50%.

** References: **

- Numerical Linear Algebra, by Lloyd N. Trefethen and David Bau,
III, SIAM ISBN 0-89871-361-7
- Computational Science I, Lecture Notes for CAAM 519, by Matthew G. Knepley
- Scientific Computing, An Introductory Survey, 2nd Edition, by Michael T. Heath
- Iterative Methods for Sparse Linear Systems, by Yousef Saad
- Using MPI: Portable Parallel Programming with the Message-Passing Interface, by W. Gropp, E. Lusk, and A. Skjellum.
- PETSc Users Manual ,
ANL-95/11 - Revision 3.7, Argonne National Laboratory, 2016, by S. Balay et al.
- PETSc for Partial Differential Equations, by Ed Bueler
- Design Patterns,
by E. Gamma, R. Helm, R. Johnson and J. Vlissides
- Introduction to Parallel Computing https://computing.llnl.gov/tutorials/parallel_comp/

Lecture Notes and Assignments: blackboard.iit.edu

** Advising Philosophy: click here**