CSI 801/INFT814
Foundations of Computational Science
This course will be about scientific computation, particularly on
parallel computers. The
term computational science to me implies the juxtaposition and joining of
a natural science such
as physics, chemistry, mathematics or statistics with computation.
The idea is that computation
forms a fundamental tool in the evolution of the science.
Scientific computation on the other
hand focuses on computational techniques used in the computational science.
As their names
imply, computational science is about science while scientific computation
is about computing.
This course will be about the computing in service to science.
Three books will be used:
-
Scientific Computing: An Introduction with Parallel
Computing, by Gene Golub and James M. Ortega
-
Scientific Computing and Differential
Equations, by Gene Golub and James M. Ortega
-
Introduction to Parallel
Programming, by Steven Brawer
My plan is to have three segments. The first three sessions
will be devoted to development of some practical skills with
UNIX,
C,
the parallel extensions
to FORTRAN and C,
architecture of the Intel iPSC/2 and the Intel Paragon XP/S,
and some
programming paradigms. The next ten sessions will be presented seminar
style by students in
the class according to the outline below. The last three sessions
will involve some guest lectures
by a statistician, a biologist and a fluid dynamicist on their use
of scientific computation.
The syllabus for the student lectures (seminar) will be as follows:
Session 1
- Chapter 3 Parallel and Vector Computing, Sci. Comp.
- 3.1 Parallel and Vector Computers
- 3.2 Basic Concepts in Parallel Computing
- 3.3 Matrix Multiplication
- Chapter 3 Hardware and Operating Systems Models, Para. Prog.
Session 2
- Chapter 4 Processes, Shared Memory, and Simple Parallel Programs, Para. Prog.
- Chapter 5 Basic Parallel Programming Techniques, Para. Prog.
Session 3
- Chapter 7 Introduction to Scheduling: Nested Loops, Para. Prog.
- Chapter 8 Overcoming Data Dependencies, Para. Prog.
Session 4
- Chapter 9 Scheduling Summary, Para. Prog.
- Chapter 10 Linear Recurrence Relations -- Backwards Dependencies, Para. Prog.
- Chapter 11 Performance Tuning, Para. Prog.
Session 5
- Chapter 4 Polynomial Approximation, Sci. Comp.
- 4.1 Taylor Series, Interpolation and Splines
- 4.2 Least Squares Approximations
- 4.3 Application to Root Finding
- Chapter 5 Continuous Problems Solved Discretely, Sci. Comp.
- 5.1 Numerical Integration
Session 6
- Chapter 5 Continuous Problems Solved Discretely, Sci. Comp.
- 5.2 Initial Value Problems
- 5.3 Boundary Value Problems
- 5.4 Space and Time
- 5.5 The Curse of Dimensionality
Session 7
- Chapter 6 Direct Solutions of Linear Equation Comp
- 6.1 Gaussian Elimination
- 6.2 Errors in Gaussian Elimination
- 6.3 Other Factorizations
Session 8
- Chapter 7 Parallel Direct Method Comp
- 7.1 Basic Methods
- 7.2 Other Organizations of Factorization
- 7.3 Banded and Tridiagonal Systems
Session 9
- Chapter 8 Iterative Methods, Sci. Comp.
- 8.1 Relaxation-type Methods
- 8.2 Parallel and Vector Implementations
- 8.3 The Multigrid Method
Session 10
- Chapter 9 Conjugate Gradient-Type Methods, Sci. Comp.
- 9.1 The Conjugate Gradient Method
- 9.2 Preconditioning
- 9.3 Nonsymmetric and Nonlinear Problems
The abbreviations above are as follows:
- Sci. Comp.
- Scientific Computing: An Introduction with
Parallel Computing by Gene Golub and James M. Ortega
- Para. Prog..
- Introduction to Parallel Programming by Steven Brawer
The book, Scientific
Computing and Differential Equations by Gene Golub and James M. Ortega, will be used as
a backup source to the other Golub and Ortega book.