This webpage hosts the materials required for the course. Practical component accompanying CS3015 High Performance Computing and Big Data.

Schedule

Lab experiments

# Experiment
1 Matrix–matrix multiplication — loop ordering, data locality, and cache behaviour
2 Exploring the memory hierarchy and branch prediction
3 SIMD vectorisation, compiler optimisation levels, and data layout (AoS vs. SoA)
4 OpenMP fork-join basics and synchronizing a parallel array sum (critical vs. atomic)
5 OpenMP work-sharing in practice — parallel for, scheduling policies, reduction, and single
6 OpenMP tasks in practice — cutoff-tuned Fibonacci, task-parallel quicksort, task-parallel directory scan