Skip to content

State of the repository: end of December 2022

Florian Deconinck edited this page Dec 22, 2022 · 3 revisions

Summary

This document will give insights into the state of the repository by the end of December 2022:

  • current structure and where to find features,
  • known bugs and shortcomings,
  • amelioration to implement,
  • thoughts on extending this work.

More detailed can be found in two publications written in the course of the research: [TBD]

Pace was designed and implemented originally at AI2 in the course of 3 years of research.

Core team: Johann Dahm, Florian Deconinck, Oliver Elbert, Jeremy McGibbon, Tobias Wicky, Elynn Wu, Oliver Fuhrer, Eddie Davis,

Partners:
ETH's SPCL
ETH's CSCS
NOAA
GFDL
NASA

EOY remaining tasks

  • Dycore no longer takes state as init argument

    • Or, at the least, raises exception if given the wrong state at call time or no longer has it as a call-time argument
  • Move Communicator out of DriverConfig, so it returns to being a serializable config class

  • Suppress RuntimeWarnings in grid generation (e.g. divide by zero)

  • Refactor “run mode” into a “disable compilation” and cache_type: str (“default”, “9_ranks”) config setting, do stencil compilation with a length-zero run time

    • removes code coupling and some “magic” monkeypatching
    • can use post_init to ensure compilation is disabled if using 9_ranks (no way to compile into a 9-rank cache while in parallel), but no need to check that we’re using 9_ranks if compilation is disabled as a user could write a full-rank cache to be run in disabled compilation mode
    • also add documentation to all related classes
  • Write savepoint data from Python checkpointers

    • delete the translate tests after
    • (Merge regression data folders and data download)
  • Write an example “unit” regression test using checkpointers, automated thresholds, and re-written init-from-netcdf for the inputs

  • Decouple grid generation (which lives in pace.util and is more widely useful) from gt4py

  • Increase containerization of state in dycore to reduce arguments to functions

  • Re-organize Pace code to take advantage of information from walkthrough sessions

    • moving temporaries off of DycoreState and onto objects
    • refactor Delnflux out of fvtp2d, refactor delnfluxnosg out of delnflux, rename delnfluxnosg to some kind of “apply fluxes”, rename delnflux to some kind of “get diffusive flux”
Clone this wiki locally