High Performance Computing (HPC) is a rapidly growing field that is transforming the way we approach complex computational problems across diverse industries and scientific disciplines. This course provides a comprehensive overview of the fundamental concepts, architectures, and programming techniques that underpin modern HPC systems.
The course begins by exploring the need for HPC, its societal and economic impact, and the key differences between HPC and traditional parallel computing. Students will learn how to measure and optimize software performance, as well as understand the critical hardware-software interface in HPC environments.
Through hands-on exercises and case studies, participants will gain practical experience in programming various HPC architectures, including multinode systems using MPI, multicore systems using OpenMP, and GPU-accelerated systems programmed in CUDA or OpenCL.
This course is designed for a wide range of audiences, from computer science and engineering students to hardware/software developers, high-tech managers, and researchers in computational and data-driven science and engineering. Whether you're new to HPC or looking to deepen your expertise, this course will provide you with the knowledge and skills to harness the power of high-performance computing.