Parallel Computing (B-KUL-H03F9A)
Aims
The aim of the course is to provide insight into the key issues of parallel high performance computing and into the design and performance analysis of parallel algorithms.
The students should be able to design and analyse parallel algorithms with simple data dependencies, both in the shared memory programming model, available on multicore systems, as well as in the distributed memory programming model, available on HPC clusters.
Previous knowledge
Skills: the student must be able to analyze, synthesize and interpret scientific texts and results at master program level.
Knowledge: programming in Java or C/C++, algorithms for basic numerical and non-numerical tasks (matrix operations, sorting, ...).
Is included in these courses of study
- Master in de ingenieurswetenschappen: wiskundige ingenieurstechnieken (Leuven) 120 ects.
- Master in de ingenieurswetenschappen: computerwetenschappen (Leuven) (Hoofdoptie Computationele informatica) 120 ects.
- Master in de wiskunde (Leuven) 120 ects.
- Master of Mathematics (Leuven) 120 ects.
- Courses for Exchange Students Faculty of Engineering Science (Leuven)
- Master of Mathematical Engineering (Leuven) 120 ects.
Activities
3 ects. Parallel Computing: Lecture (B-KUL-H03F9a)
Content
This course deals with the design, implementation and performance analysis of parallel algorithms. First, the architecture of parallel computers (multicore systems, HPC clusters) is briefly reviewed. Several programming models (shared address space, message passing, ...) are described. The main part of the course deals with parallel algorithms for a number of model problems, including matrix operations, sorting, operations on graphs. Some papers on more advanced topics (e.g. load balancing) are studied.
- Standard concepts of parallel algorithms: speed-up, law of Amdahl, scalability, pipelining, classification (SISD, SIMD, MIMD), levels of parallelism
- Organisation of computer hardware: memory hierarchy, multicore machine, arithmetic intensity, temporal and spatial locality, interconnects, programming models
- Distributed memory and message passing: point to point communication, collective operations, MPI, communication hiding and avoidance
- Shared memory and multithreading: threads, OpenMP
- Parallel matrix vector product: partitioning, complexity for dense, tridiagonal, banded and sparse matrices
- Sorting: bubblesort and quicksort
- Communication avoidance, commication hiding
- Other topics: MapReduce, BDMPI
Course material
Study cost: 1-10 euros (The information about the study costs as stated here gives an indication and only represents the costs for purchasing new materials. There might be some electronic or second-hand copies available as well. You can use LIMO to check whether the textbook is available in the library. Any potential printing costs and optional course material are not included in this price.)
- Textbook
- extra material (slides, papers) made available on Toledo
1 ects. Parallel Computing: Exercises and Laboratory Sessions (B-KUL-H03G0a)
Content
Exercises and practical sessions related to the lectures Algorithms for parallel computers.
Course material
- Textbook
- extra material made available on Toledo
Format: more information
2 or 3 sessions are exercise sessions without access to computers; 2 or 3 sessions are hands-on sessions with access to a multicore system and to a HPC cluster. The latter sessions are obligatory.
Evaluation
Evaluation: Parallel Computing (B-KUL-H23F9a)
Explanation
The evaluation consists of the written exam in January, the results of an assignment during the exercise sessions and a summary of a scientific paper.