Aims
- To promote knowledge of the main architectures of parallel computers
- To describe methods for the performance analysis of parallel algorithms
- To analyze a number of basic parallel numerical algorithms
- To show the potential of parallel algorithms in scientific computing
- To implement the methodology described during the lectures in the framework of a programming project, using a parallel computer of UCL's Institut de Calcul Intensif.
Main themes
The internal archtecture of computers has known over the last few years a revolution which will allow methods of large-scale numerical simulation to achieve their potential. These new architectures exploit in various ways the concept of parallelism. The optimal implementation of numerical simulation methods on parallel computers requires an appropriate methodology and suitable algorithms.
This course describes the main parallel computer architectures, using the functional point of view that is useful to the design of efficient numerical algorithms. It then establishes and illustrates on elementary examples (e.g. matrix mutliplication) basic methods for the performance analysis of parallel algorithms. It describes and analyzes various parallel algorithms for the solution of linear problems, in the context of general algebraic problems or the solution of simple partial differential equations. Finally, it illustrates using various examples the value of parallel computing in the numerical simulation of complex problems. The student has the opportunity to design and implement a programming project using a parallel computer of UCL's Institut de Calcul Intensif.
Content and teaching methods
1. Introduction
- Large-scale numerical simulations
- Supercomputers : history and evolution of performance
- Parallel computing : definition, potential and history
2. Parallel architectures
- Functional description
- Taxonomy
- Current representative commercial models
3. Parallel algorithms : a primer
- General versus machine-specific issues
- Programming models
- Speed-up factor ; efficiency ; load balancing ; granularity
- Modeling and evaluation of performance
- Elementary examples (dot product, matrix multiplication)
- Implementation: design and programming tools
4. Parallel numerical algorithms
- Numerical linear algebra (dense and sparse matrix systems) ; direct and iterative methods ; domain decomposition methods
- Applications to approximate solution of partial differential equations ; automatic domain decomposition ; dynamic load balancing ; implementation for large-scale problems ; illustrations of recent results
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
Prerequisites:
A first basic course on numerical methods, computer programming and computer systems
Evaluation:
The student has the opportunity to design and implement a programming project using a parallel computer of UCL's Institut de Calcul Intensif. Knowledge of theoretical topics is evaluated during an open-book, oral exam. The project and oral exam have an equal weight (50%) in the final evaluation.
Syllabus : copies of slides (written in English) used during the lectures.
|