This course is all about parallel programming on the desktop and in a distributed environment (e.g., cluster) for applications that you are attempting to accelerate to improve user interaction and simulation and computational performance!
- Moore's Law and Multicore
- Multicore programming using OpenMP
- Speedups and Amdahl's Law
- Hyperthreading
- Caching issues and False Sharing
- Data Decomposition
- Functional Decomposition
- Single Instruction Multiple Data (SIMD)
- GPU Computing, including CUDA and OpenCL
- OpenCL / OpenGL Interoperability
- Message Passing Interface (MPI)