1. Welcome to Nuuksio
1. Introduction to high-performance computing
2. Parallel computing
3. Working in supercomputers
Case study: Heat equation
1. Introduction to MPI
2. Point-to-point communication I
3. Point-to-point communication II
4. Non-blocking communication
5. Collective communication I
6. Collective communication II
7. User-defined communicators
8. Further MPI topics
Parallel debugging
Message Passing Game
Extra: One-sided communication
Extra: Persistent communication
Extra: Process topologies
Extra: User-defined datatypes
1. Introduction to hybrid programming
2. Introduction to OpenMP
3. OpenMP library routines and data sharing
4. OpenMP reductions and execution control
5. OpenMP tasks
6. Using MPI with OpenMP threads
1. Input/Output (I/O) in HPC
1. Introduction to GPU programming
2. HIP, CUDA and GPU kernels
3. Memory Hierarchy and Memory Accesses in GPUs
4. Streams, events, and synchronization
5. Memory allocations, access, and unified memory
6. Kernel optimisation
7. OpenMP offloading
8. SYCL Essentials
9. Multi-GPU programming and HIP/OpenMP/SYCL + MPI
1. Introduction to AI
2. Scaling PyTorch Models: Single vs Multi-GPU Training and Techniques
3. Understanding GPU Computational Capabilities
1. Application design & HPC deployment
1. Application performance
1. Closing