### CSC456-2306F High-Performance Scientific Computing

Aims
• Introduce the basic concepts in parallel computation and state-of-the-art scientific computing.
• Formulate parallel numerical methods.
• Introduce selected advanced numerical methods.
• Implement the above methods on specific parallel architectures.
• Study the performance of methods and machines.
Outline
• Introduction
• Motivation for parallel computing
• Parallel architectures, communication complexity
• Concepts: granularity, degree of parallelism, speedup, efficiency, load balancing, data ready time
• Simple examples: adding two vectors of size n, summing up n numbers, inner product of two vectors, matrix-vector multiplication, total exchange
• Measuring and studying speedup and efficiency -- Amdahl's law -- Scaled speedup and efficiency
• Linear systems: Direct methods
• Gauss elimination, LU factorisation
• Fine grain LU factorisation, Data flow algorithm
• Symmetric and symmetric positive definite matrices, Cholesky decomposition
• Triangular systems, Back substitution
• Multiple right side vectors
• Banded systems, LU factorisation, Triangular banded systems, Pivoting in banded systems
• Tridiagonal systems, Cyclic reduction
• Banded Systems, Partitioning methods
• Introduction to Boundary Value Problems (BVPs)
• One dimensional model BVP -- simple finite difference method
• Two dimensional model BVP -- simple finite difference method
• Linear systems: Iterative methods
• Introduction
• Jacobi method, application to the 2D BVP
• Conjugate gradient method, application to the 2D BVP
• Preconditioning
• Preconditioned conjugate gradient method, application to the 2D BVP
• Gauss Seidel, SOR and SSOR methods
• Red-Black colouring, the GS, SOR and SSOR methods for the 2D BVP
• Multicolouring, the GS, SOR and SSOR methods for the 9-point-star stencil
• Asynchronous iterations
• Block iterative methods
• Partial Differential Equations
• Schur complement method, arrowhead matrix, application to the 1D BVP
• The use of CG for the solution of the Schur complement system
• Schur complement method, arrowhead matrix, application to the 2D BVP
• Schwarz alternating (splitting) method, preconditioning
• Multigrid method
• Fast Fourier Transform methods, application to the 1D BVP
• Tensor products of matrices
• FFT methods for the 2D BVP
• Interpolation
• Deboor decomposition

References

• Elementary calculus: Taylor series, Rolle's theorem, mean value theorem, graphs of functions, continuity, convergence, de l' Hospital's rule, partial derivatives, etc.
• Numerical Linear Algebra (included in CSC336): knowledge of direct methods for solving linear systems. Fluency in matrix and vector manipulation, both algebraic and algorithmic.
• Interpolation (included in CSC336/CSC436): some knowledge on interpolation.
• Partial Differential Equations: minimal knowledge of PDEs.
• Theory of Computer Algorithms: some knowledge on computer algorithms, data structures and computational complexity.
• Programming: proficiency in some conventional programming language, preferably C/C++ or FORTRAN.

Schedule for Fall 2018
 Lectures Wednesday 1-3PM Room BA B025 Tutorial Monday 2-3PM Room BA 2195 Office Hours Monday 3:30-4:30PM Room BA 4226
Tutorials may be used for lectures.

Tentative marking scheme for Fall 2018
 Problem set 1 20% Problem set 2 25% Problem set 3 25% Term test 1 30%
Most of the assignments include substantial computer work.