Skip to content

Latest commit

 

History

History
120 lines (89 loc) · 7.72 KB

NEWS.md

File metadata and controls

120 lines (89 loc) · 7.72 KB

ClimaCore.jl Release Notes

main

  • Support for the following methods have been deprecated (PR #1821, ):
    • IntervalTopology(::Mesh) in favor of using IntervalTopology(::ClimaComms.AbstractDevice, ::Mesh)
    • FaceFiniteDifferenceSpace(::Mesh) in favor of using FaceFiniteDifferenceSpace(::ClimaComms.AbstractDevice, ::Mesh)
    • CenterFiniteDifferenceSpace(::Mesh) in favor of using CenterFiniteDifferenceSpace(::ClimaComms.AbstractDevice, ::Mesh)
    • FiniteDifferenceGrid(::Mesh) in favor of using FiniteDifferenceGrid(::ClimaComms.AbstractDevice, ::Mesh)

v0.14.9

  • GPU dispatching with copyto! and fill! have been fixed PR #1802.

v0.14.8

  • Added FieldMatrixWithSolver, a wrapper that helps defining implicit Jacobians. PR #1788

v0.14.6

  • Added array2field(::Field) and field2array(::Field) convenience functions, to help facilitate use with RRTMGP. PR #1768

  • Nv is now a type parameter in DataLayouts that have vertical levels. As a result, users can use DataLayouts.nlevels(::AbstractData) to obtain a compile-time constant for the number of vertical levels.

  • Added interpolate(field, target_hcoords, target_zcoord) convenience function so that the Remapper does not have to be explicitely constructed. PR #1764

v0.14.5

  • run_field_matrix_solver! was fixed for column spaces, and tests were added to ensure it doesn't break in the future. PR #1750
  • We're now using local memory (MArrays) in the band_matrix_solve!, which has improved performance. PR #1735.
  • We've specialized some cases in run_field_matrix_solver!, which results in more efficient kernels being launched. PR #1732.
  • We've reduced memory reads in the band_matrix_solve! for tridiagonal systems, improving its performance. PR #1731.
  • We've added NVTX annotations in ClimaCore functions, so that we have a more granular trace of performance. PRs #1726, #1723.

v0.14.0

  • Extend adapt_structure for all operator and boundary condition types. Also use unrolled_map in multiply_matrix_at_index to avoid the recursive inference limit when compiling nested matrix operations. PR #1684
  • Remappers can now process multiple Fields at the same time if created with some buffer_lenght > 1. PR (#1669) Machine-precision differences are expected. This change is breaking because remappers now return the same array type as the input field.
  • We inlined the multiple_field_solve kernels, which should improve performance. PR #1715.
  • We added support for MultiBroadcastFusion, which allows users to fuse similar space point-wise broadcast expressions via Fields.@fused_direct. PR #1641.

v0.13.4

  • We fixed some fieldvector broadcasting on Julia 1.9. PR #1658.
  • We fixed an inference failure with matrix field broadcasting. PR #1683.

v0.13.3

  • We now always inline for all ClimaCore kernels. PR #1647. This can result in more brittle inference (due to compiler heuristics). Technically, this is not a breaking change, but some code changes may be needed in practice.

v0.13.2

  • fixed array allocation for interpolation on CPU. PR #1643.

v0.13.1

  • fixed edge case in interpolation that led to incorrect vertical interpolation. PR #1640.
  • fixed interpolate! for MPI runs. PR #1642.

v0.13.0

  • support for many deprecated methods have been dropped PR #1632.
  • Slight performance improvement by replacing rdiv with rmul. PR (#1496) Machine-precision differences are expected.
  • Rewritten distributed_remapping. New distributed_remapping is non-allocating and up to 1000x faster (on GPUs). New distributed_remapping no longer supports the physical_z argument (this option is still available in Remapping.interpolate_column). New interpolate! function is available for remapping in-place. The new preferred way to define a Rampper is Remapper(space, target_hcoords, target_zcoords) (instead of Remapper(target_hcoords, target_zcoords, space)). PR (#1630)

v0.12.1

  • Started changelog
  • Fixed matrix field iterative solver tests.
  • Specialize on diagonal fieldvector broadcasts to skip uninferred check_broadcast_axes PR #1615, Issue #1465.
  • Fixed inference errors when not debugging PR #1617, Issue #2597.