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.