701-1270-00L  High Performance Computing for Weather and Climate

SemesterSpring Semester 2021
LecturersO. Fuhrer
Periodicityyearly recurring course
Language of instructionEnglish


AbstractState-of-the-art weather and climate simulations rely on large and complex software running on supercomputers. This course focuses on programming methods and tools for understanding, developing and optimizing the computational aspects of weather and climate models. Emphasis will be placed on the foundations of parallel computing, practical exercises and emerging trends such as using GPUs.
ObjectiveAfter attending this course, students will be able to:
- Understand a broad variety of high performance computing concepts relevant for weather and climate simulations
- Work with weather and climate simulation codes that run on large supercomputers
ContentHPC Overview:
- Why does weather and climate require HPC?
- Today's HPC: Beowulf-style clusters, massively parallel architectures, hybrid computing, accelerators
- Scaling / Parallel efficiency
- Algorithmic motifs in weather and climate

Writing HPC code:
- Data locality and single node efficiency
- Shared memory parallelism with OpenMP
- Distributed memory parallelism with MPI
- GPU computing
- High-level programming and domain-specific languages
Literature- Introduction to High Performance Computing for Scientists and Engineers, G. Hager and G. Wellein, CRC Press, 2011
- Computer Organization and Design, D.H. Patterson and J.L. Hennessy
- Parallel Computing, A. Grama, A. Gupta, G. Karypis, V. Kumar (Link)
- Parallel Programming in MPI and OpenMP, V. Eijkhout (Link)
Prerequisites / Notice- fundamentals of numerical analysis and atmospheric modeling
- basic experience in a programming language (C/C++, Fortran, Python, …)
- experience using command line interfaces in *nix environments (e.g., Unix, Linux)