Advanced Parallel Programming

Building upon the foundational skills developed in the introductory course, "Advanced Parallel Computing" pushes the boundaries into more complex and powerful parallel computing strategies. This course encourages students to mix the distributed computing approaches learned through MPI with the shared-memory models of OpenMP. We then advance into the realm of GPU computing, starting with an introduction to CUDA (Compute Unified Device Architecture) for programming NVIDIA GPUs, followed by exploration of OpenACC for directive-based GPU programming. This advanced course is designed to equip participants with the knowledge and practical experience to efficiently utilize both CPUs and GPUs, enabling the tackling of computationally intensive tasks and the harnessing of the full potential of modern computing architectures. 

Lecturer(s)