Each week, there will be a lab exercise. The exercises are linked here:
Lab 1 Introduction
Lab 2 Parallel algorithms
Lab 3 Introduction to Java
solution (not perfect, just as an inspiration)
Lab 4 Concurrency in Java - Basics, processes, threads, object monitors, memory model
solution (not perfect, just as an inspiration)
Lab 5 Concurrency in Java - ExecutorService, fork/join framework, bounded buffers, semaphores/mutexes
solution (not perfect, just as an inspiration)
Lab 6 Concurrency in Java - Deadlock, livelock, problems to watch out for, functional elements, parallel streams, futures and promises
solution solution for Future (not perfect, just as an inspiration)
Lab 7 Introduction to C++
Lab 8 OpenMP
Lab 9 OpenCL I
Lab 10 OpenCL II
Lab 11 Python I
Lab 12 Fortran
Lab 12 Python II