|
MSc in Mathematical Modelling & Scientific Computing
| Special topic |
(Week 8) TT Dr Stef Salvini |
Synopsis
This course provides a hands-on introduction to Parallel Numerical computing through both formal lectures and extensive practical sessions. Both distributed memory and shared memory approaches, using MPI and OpenMP, respectively, will be introduced and used. Hardware and algorithmic issues will also be covered.
Aims
Numerical High Performance Computing (HPC) is an expanding field, of increasing economic importance, for scientific, engineering as well as commercial/financial applications. Currently, HPC can only be achieved through parallelism. Hence, this course will illustrate the main techniques in parallel computing and some of the issues arising, in the context of HPC for numerical applications:
Current and future hardware (e.g. multi-core CPUs) and its implications for numerical HPC
Using the Oxford University HPC facilities (e.g. compilation, job sumissions, etc)
Distributed-memory parallelism and MPI
Shared memory parallelism and OpenMP
Numerical libraries and parallel tools
These will be presented in the context of specific applications, for example, Monte Carlo simulations and Finite Difference (FD) solutions of 2D diffusion equation.
Practical sessions are an essential part of the course and can be carried out either in C or Fortran, according to each individual attendee's preference. Code templates, problem sheets, etc will be provided. These sessions will culminate, towards the end of the week, in parallelizing an application, such as in the examples mentioned above.
DPhil students and others are very welcome to attend the lectures and are encouraged to also participate in the practical sessions.
Reading list
J L Hennessey and D A Patterson, Computer Architecture: a Quantitative Approach, 4th edition, Morgan Kaufmann, 2006 or 3rd edition Morgan Kaufmann, 2003
A Grama, A Gupta, G Karypis, V Kumar, Introduction to Parallel, Environments Tools, 2nd edition, Pearson (Addison Wesley), 2003
W P Petersen, P Arbenz, Introduction to Parallel Computing, Oxford University Press 2005
W Gropp, E Lusk and A Skjellum, Using MPI: Portable parallel Programming with the Message-Passing Interface, 2nd edition, MIT Press, 2000
R Chandra, D Kohr, R Menon, L Dagum, D Maydan, J McDonald, Parallel Programming in Open MP, Morgan Kaufmann, 2000