Parallel Computing (B-KUL-H03F9A)

4 ECTSEnglish33 First termCannot be taken as part of an examination contract
POC Wiskundige ingenieurstechnieken

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.

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, ...).

Activities

3 ects. Parallel Computing: Lecture (B-KUL-H03F9a)

3 ECTSEnglishFormat: Lecture20 First term
POC Wiskundige ingenieurstechnieken

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

- Textbook

- extra material (slides, papers) made available on Toledo

1 ects. Parallel Computing: Exercises and Laboratory Sessions (B-KUL-H03G0a)

1 ECTSEnglishFormat: Practical13 First term
POC Wiskundige ingenieurstechnieken

Exercises and practical sessions related to the lectures Algorithms for parallel computers.

- Textbook

- extra material made available on Toledo 

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)

Type : Partial or continuous assessment with (final) exam during the examination period
Description of evaluation : Written, Paper/Project, Report
Type of questions : Open questions
Learning material : Course material


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.