Index

Material

Introduction · Why parallelism? · Programming modern CPUs · Programming modern GPUs · Course idea and prerequisites

Chapter 1: Role of parallelism

Chapter 2: Case study

Chapter 3: Multithreading with OpenMP

Chapter 4: GPU programming

Lectures

  • Week 1 · Lectures · Topics covered
  • Week 2 · Lectures · Topics covered · Additional recommended reading
  • Week 3 · Lectures · Topics covered · Additional material
  • Week 4 · Lectures · Topics covered · Additional material
  • Week 5 · Lectures · Topics covered
  • Week 6 · Lectures

Links to external resources · Hardware · OpenMP · SIMD · CUDA · OpenCL · Rust programming language · Low-level programming techniques

Acknowledgments · Previous editions · Copyright and license

2020 course

Overview

Prerequisite test · Programming task to solve · Step 1: GitHub setup · Step 2: Write code on Maari computers · Step 3: Submit your solution · What happens next? · Questions?

Workflow for solving exercises

Help with debugging

Computers · Remote access

Exercises

Exercise CP: correlated pairs

Exercise IS: image segmentation

Exercise MF: median filter

Exercise NN: neural networks

Exercise SO: sorting