Skip to content

Introduction and Overview

Matt Norman edited this page Dec 13, 2021 · 2 revisions

Welcome to the miniWeather mini app for hands-on training in parallel computation.

  • Large enough to be interesting: miniWeather is large enough to be scientifically interesting and representative of many grid-based algorithms in Partial Differential Equations (PDEs) used for scientific simulation. Specifically, it looks at 2-D weather-like flows using the PDEs for stratified, buoyancy-driven, atmospheric dynamics.
  • Small enough to be manageable: It is small enough to be self-contained and understood in a relatively small amount of time.
  • Satisfying visualizations: miniWeather has parallel I/O provided for you to output NetCDF-format files that are easily visualized for a number of interesting test cases.
  • Easily debugged: Simple unit testing is provided for you to at least ensure your mass and total energy changes are within expected bounds.
  • Diverse: You can learn in Fortran, C, or C++ -- whichever language you are comfortable in. You can learn MPI, OpenMP CPU threading, OpenACC and OpenMP offload GPU threading, and C++ portability.
  • Documented and Guided: Significant effort has gone into guiding you through the hands-on process of parallelizing in various modes and languages as well as documenting what is going on in the code, both with internal comments and external documentation.

In addition to training in parallel programming, miniWeather is well-suited to performance benchmarks and compiler regression testing.