Multicore Programming
- Introduction to parallel architecture, memory models including shared memory and distributed memory models
- Introduction to multithreaded programming, programming models, programming languages
- Introduction to vector processing, SIMD, SSE, AVX, how to write a vectorized program
- Parallel programming using OpenMP
- Introduction to GPU, GPU architecture, GPU memory hierarchy
- Introduction to multithreaded programming for GPGPU
- Implementing general purpose programs on GPU using CUDA
- Parallel patterns in GPUs
- Practical applications (matrix operation,histogram, etc.)
- Profiling and optimizing CUDA programs