This repository is a hands-on course introducing you to parallel computing with C/C++, so that you can solve computationally and data-intensive problems using multicore processors, GPUs, and supercomputer clusters. By working through common scenarios to parallelize algorithms and run multiple simulations in parallel, you will gain an understanding of parallel computing with this APIs and learn about best practices.
Along with the repository, exercises and examples are provided to reinforce how to use parallel computing. Hands-On exercises and examples will vary in difficulty from simple parallel usage concepts to more advanced techniques.
- Hands-On 1: Portable Parallel Programming with OpenMP
- Hands-On 2: Parallelization with OpenMP
- Hands-On 3: Portable Parallel Programming with MPI
- Hands-On 4: Matrix Computation with MPI
- Hands-On 5: Basic Hybrid Application MPI+OpenMP
- Hands-On 6: Portable Parallel Programming with CUDA
- Hands-On 7: Accelerating Applications with CUDA C/C++/Python
- Hands-On 8: Collective Communication Operations with NCCL on Multi GPU Systems
- Hands-On 9: Samples Codes using CUDA AWARE MPI on Multi-GPU