History

latest

Major changes: - Added NullTimer to use for default Timer value, it is a disabled timer which cannot be enabled (raises NotImplementedError)

Fixes: - Fixed bug where ZarrMonitor depended on dict .items() always returning items in the same order

v0.6.0

Major changes: - Use cftime.datetime objects to represent datetimes instead of datetime.datetime objects. This results in times stored in a format compatible with the fortran model, and accurate internal representation of times with the calendar specified in the coupler_nml namelist. - Timer class is added, with methods start and stop, and properties clock (context manager), and times (dictionary of accumulated timing) - CubedSphereCommunicator instances now have a .timer attribute, which accumulates times for “pack”, “unpack”, “Isend”, and “Recv” during halo updates - make SubtileGridSizer.from_tile_params public API - New method CubedSphereCommunicator.synchronize_vector_interfaces which synchronizes edge values on interface variables which are duplicated between adjacent ranks - Added .sel method to corner views (e.g. quantity.view.northeast.sel(x=0, y=1)) to allow indexing these corner views with arbitrary dimension ordering. - Halo updates now use tagged send/recv operations, which prevents deadlocks in certain situations - Quantity.data is now guaranteed to be a numpy or cupy array matching its .np module, and will no longer be a gt4py Storage - Quantity accepts a gt4py_backend on initialize which is used to create its .storage if one was not used on initialize - parent MPI rank now referred to as “root” rank in variable names and documentation - Added TILE_DIM constant for tile dimension of global quantities - Added Partitioner base class implementing features necessary for scatter/gather - Moved scatter and gather from TileCommunicator to the Communicator base class, so its code can be re-used by the CubedSphereCommunicator - Implemented subtile_slice, global_extent, and subtile_extent routines on CubedSpherePartitioner necessary for scatter/gather in CubedSphereCommunicator - Renamed argument tile_extent and tile_dims to global_extent and global_dims in routines to refer generically to the tile in the case of tile scatter/gather or cube in the case of cube scatter/gather - Fixed a bug where initializing a Quantity with a numpy array and a gpu backend would give CPUStorage - raise TypeError if initializing a quantity with both a storage and a gt4py_backend argument - eagerly create storage object when initializing Quantity - make data type of quantity and storage reflect the gt4py_backend chosen, instead of being determined based on the data type being numpy/cupy

Fixes: - If only_names is provided to open_restart, it will return those fields and nothing more. Previously it would include “time” in the returned state even if it was not requested. - Fixed a bug where quantity.storage and quantity.data could be out of sync if the quantity was initialized using data and a gt4py backend string - Default slice for corner views when not given at all as an index (e.g. when providing one index to a 2D view) now gives the same result as providing an empty slice (:) - Fixed a bug where quantity.view could refer to a different array than quantity.data if the quantity was initialized using data and a gt4py backend string, and then quantity.storage was accessed

v0.5.1

  • enable MPI tests on CircleCI

v0.5.0

Breaking changes: - send_buffer and recv_buffer are modified to take in a callable, which is more easily serialized than a numpy-like module (necessary because we serialize the arguments to re-use buffers), and allows custom specification of the initialization if zeros are needed instead of empty.

Major changes: - Added additional regional views to Quantity as attributes on Quantity.view, including northeast, northwest, southeast, southwest, and interior - Separated fv3util into its own repository and began tracking history separately from fv3gfs-python - Added getters and setters for additional dynamics quantities needed to call an alternative dynamical core - Added storage property to Quantity, implemented as short-term shortcut to .data until gt4py GDP-3 is implemented

Deprecations: - Quantity.values is deprecated

v0.4.3 (2020-05-15)

Last release of fv3util with history contained in fv3gfs-python.