Course Instructor: Emil-Ioan Slusanschi Lecture Description: The High Performance Scientific Computing lecture studies state-of-the-art parallel computing architectures in the context of modern parallel programming paradigms. We show the motivations and trends of the latest HPC systems, and give an insight in the design and implementation of parallel computing systems. We give the basics of mathematical modeling and numerical methods and data structures employed in HPC from systems of differential equations, automatic differentiation, optimization problems, solving systems of nonlinear equations, to basic linear algebra packages, eigenvalues, eigenvectors, and chaotic systems. |
|
We study a number of scientific applications requiring HPC systems with examples from research and industry. We present tools and techniques for profiling and parallel debugging. We show how to perform performance analysis, as well as serial and parallel code optimizations. We also present partitioning and load balancing techniques for parallel computing applications, and aspects of hybrid MPI/OpenMP programming. We conclude with a presentation of frameworks for automated code parallelization and generation on state-of-the-art computing architectures like homogenous and heterogeneous multicore systems and GPUs. |