Advanced Scientific Computing (Fall, 2012)
Thursday 6:25-9:05pm, Engineering 1 034
Instructor: Hong Zhang,
Research Professor, Department of Computer Science, IIT.
Web Page: www.mcs.anl.gov/~hzhang/teach/cs595
Office Hours and Location: 3:30 - 5:15pm, SB 235C
Advising Philosophy: click here
Volunteer instructor: Michael McCourt
Web Page for CS595: math.iit.edu/~mccomic/595
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
The course contains following subjects:
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
summer internship at the Argonne National Laboratory.
- 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.
Selected examples of student project:
Advanced calculus, linear algebra, background on numerical
- "Developing Efficient Linked List Operations in the PETSc Library", Surtain Han, 2012
- "Simulation of Microstructures on Parallel Machine Using PETSc", A. K. Barue, 2010
- "A Study on the Computational Scaling of LMI Constrained Optimization", B. Nicholson, 2010
- "Three Phase Instantaneous Time Domain Simulation of Electiric Power Systems Using PETSc", S. Abhyankar, 2008
- "Monte Carlo Simulation for High Dimensional Financial Derivatives", B. Niu and Y. Zhang, 2008
- "Build a Low Cost Parallel Computing Cluster", N. Johnston and M. McCourt, 2006
- "Parallel Multigrid Poisson Solver for Applications in Fluid Dynamics and High Energy Physics", M. Boghosian, 2006
Grading: Homework: 40%, Class
participation: 10%, Final project: 50%.
- Numerical Linear Algebra, by Lloyd N. Trefethen and David Bau,
III, SIAM ISBN 0-89871-361-7
- Scientific Computing, An Introductory Survey, 2nd Edition, by Michael T. Heath
- Introduction to Parallel Computing: Design and Analysis of
Algorithms, by Vipin Kuman, Ananth Grama, Anshul Gupta, and George
2nd Ed., 2003.
- Iterative Methods for Sparse Linear Systems, by Yousef Saad
- Advances in Software Tools for Scientific Computing, by M.
Griebel et al.
- Using MPI: Portable Parallel Programming with the Message-Passing
by W. Gropp, E. Lusk, and A. Skjellum.
- PETSc Users Manual, http://www.mcs.anl.gov/petsc
ANL-95/11 - Revision 3.1, Argonne National Laboratory, 2010, by S. Balay et al.
- Unix Tools http://cs2042.thefutureofmath.com
- Design Patterns, by E. Gamma, R. Helm, R. Johnson and J. Vlissides
- Introduction to Parallel Computing https://computing.llnl.gov/tutorials/parallel_comp/
- Introduction to High Performance Scientific Computing, by Victor Eijkhout http://www.tacc.utexas.edu/~eijkhout/istc/istc.html
Lecture Notes and Assignments: blackboard.iit.edu