25
Milan Klöwer 1 , Peter Düben 2 , Tim Palmer 1 Towards 16bit weather and climate models: Posits as an alternative to floats 1 Atmospheric, Oceanic and Planetary Physics, University of Oxford, Oxford, UK 2 European Centre for Medium-Range Weather Forecasts, Reading, UK

Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Milan Klöwer1, Peter Düben2, Tim Palmer1

Towards 16bit weather and climate models:Posits as an alternative to floats

1Atmospheric, Oceanic and Planetary Physics, University of Oxford, Oxford, UK2European Centre for Medium-Range Weather Forecasts, Reading, UK

Page 2: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Weather forecasting: Where are we?Posits for weather and climate models

Milan KlöwerCoNGA’19

Goal for the next decades

• ~1km (cloud resolving)

Requires exascale supercomputers Forecast skill at the European Weather Centre (UK)

From Bauer et al, 2015

Forecast skill mainly improved through

• Satellite data• Better models• Faster supercomputers

Strongly linked to horizontal resolution:

• 9km (2019)• 25km (2009)

Page 3: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Origin of weather/climate forecast errorsPosits for weather and climate models

Milan KlöwerCoNGA’19

1. Initial and boundary condition errors (observations, data assimilation, climate change)

2. Model error (approximations in equations of motion; clouds, precipitation, radiation, …)

3. Discretisation error (finite spatial & temporal resolution)

4. Rounding error of double precision floats

HUGEtiny.

Allow for bigger rounding errors they will be dwarfed by other errors anyway!

Page 4: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Weather forecasting in single precisionPosits for weather and climate models

Milan KlöwerCoNGA’19

Fore

cast

err

or Single precision yields almost identical results in ~60% of runtime.

Next step: 16bit?…

Half precision floatsbfloat16

…From Váňa et al, 2017

Temperature NH Extra-tropics

Page 5: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Reduced precision software emulatorPosits for weather and climate models

Milan KlöwerCoNGA’19

c = ℛ10(a + b), a, b, c :: DOUBLE

Allows testing of weather and climate models without specialised hardware.

From Dawson & Düben, 2017

Page 6: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Software emulation: Reduced precisionPosits for weather and climate models

Milan KlöwerCoNGA’19

Hurricane Sandy27/10/12 00:00

850hPa wind speedT255L91 ~ 80km

Doubleprecision52sbits

8 significant

bits

Singleprecision23sbits

From Matthew Chantry Spectral transform

Linear termsin reduced precision

Spectral inverse

Grid point calculations

8sbits not a representative potential for the whole model!

Page 7: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

The complexity of a weather/climate modelPosits for weather and climate models

Milan KlöwerCoNGA’19

Cost (% of CPU time)

FFTLegendre (Mat x Mat)MPI comm

Finite difference,Semi-implicit solver,Interpolations,MPI comm

Elliptic solver,Multi-grid precon

MPI commCubic interpolation

IFS (spectral), global MPI comm 427 TB 2880 MPI procs 12min runtime

DG (grid point), local MPI comm 34 TB 2880 MPI procs 4h runtime

Communication volume

Page 8: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

A posit of posits?Posits for weather and climate models

Milan KlöwerCoNGA’19

Posits:A number format much better suited for

weather and climate models?

Published Aug 4, 2017

Page 9: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Julia-based posit emulatorPosits for weather and climate models

Milan KlöwerCoNGA’19written by Isaac Yonemoto

Page 10: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

The simplest chaotic system: Lorenz 1963Posits for weather and climate models

Milan KlöwerCoNGA’19

x̂ = sxRescale the system:

s=100s=0.1

Page 11: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Decimal precisionPosits for weather and climate models

Milan KlöwerCoNGA’19

Reduced precision modelling:•Rescale equations to fit number system (limited)•Find number system that fits computed numbers

What would be the optimal decimal precision distribution?

decimal precision = − log10 | log10 (xrepr

xexact ) |

Page 12: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Shallow water equations IPosits for weather and climate models

Milan KlöwerCoNGA’19∂u

∂t+(u ⋅ ∇)u + f ̂z × u = − g∇η − ν∇4u − ru + F

∂η∂t

+∇ ⋅ (uh) = 0.

∂q∂t

+u ⋅ ∇q = 0.

Some features‣Energy and enstrophy conserving mom adv (Arakawa & Hsu, 1990)‣Smagorinsky-like biharmonic diffusion (Griffies & Hallberg, 2000)‣Time splitting (ideas from NEMO, ROMS)‣Semi-Lagrangian tracer advection (Diamantakis, 2014)

Conservation of momentum

Conservation of mass

Conservation of tracer (temperature, humidity, salinity, …)

Page 13: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Shallow water equations IIPosits for weather and climate models

Milan KlöwerCoNGA’19∂u

∂t+(u ⋅ ∇)u + f ̂z × u = − g∇η − ν∇4u − ru + F

∂η∂t

+∇ ⋅ (uh) = 0.

∂q∂t

+u ⋅ ∇q = 0.500m

F

Basically a 2D layer of the Navier-Stokes equations.

Prognostic variables

u meridional velocityv zonal velocityη surface height, pressureq Tracer, e.g. temperature

Page 14: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Rescaling: Biharmonic diffusionPosits for weather and climate models

Milan KlöwerCoNGA’19∂u

∂t= . . . − ν∇4u

𝒪(1

Δ4) ≈ 10−16 m−4≈ 1010 m4 s−1For 10km model:

un+1 = un + (ΔtΔ

)( . . . − ν̃ ∇̃4u)

𝒪(1)≈ 10−2 ms−1≈ 10−2 sm−1

Rescaling algorithms is very important for 16bit arithmetics:

Which is indeed computable with 16bit arithmetics!

Page 15: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Shallow water simulationPosits for weather and climate models

Milan KlöwerCoNGA’19

16bit posits with 2 exponent bits

The first 16bit ocean/atmosphere model !?

Page 16: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Posits for weather and climate models

Milan KlöwerCoNGA’19

Float64 Posit(16,2)

Spot the error!

Float16

Forecasts in the shallow water model

TruthFrom NASA

Satellite

Page 17: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Forecasts in the shallow water modelPosits for weather and climate models

Milan KlöwerCoNGA’19

spin

-up 100yrs

Control simulation

Float64 (truth)

Float16

Posit16,1

Posit16,2

Identical model,different arithmetics +,-,*,/

100days

n=280 random start dates

Float64 + some discretisation error

Page 18: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Forecasts in the shallow water modelPosits for weather and climate models

Milan KlöwerCoNGA’19

Perfect forecast

Useless forecast

Acceptable error

Rounding errors dominate

Page 19: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Forecasts in the shallow water modelPosits for weather and climate models

Milan KlöwerCoNGA’19

Perfect forecast

Useless forecast

Page 20: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Forecasts in the shallow water modelPosits for weather and climate models

Milan KlöwerCoNGA’19

Perfect forecast

Useless forecast

Page 21: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Forecasts in the shallow water modelPosits for weather and climate models

Milan KlöwerCoNGA’19

Perfect forecast

Useless forecast

Page 22: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Forecasts in the shallow water modelPosits for weather and climate models

Milan KlöwerCoNGA’19

Perfect forecast

Useless forecast

Posits clearly outperform floats!

Posit errors will be dwarfed by other sources of error.

Dynamic range of Posit(16,2) has a great potential

for more complex models

Page 23: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Conclusion on posits in the shallow water modelPosits for weather and climate models

Milan KlöwerCoNGA’19

PDE-type problems / computational fluid dynamicsbenefit from a 1016 - 10-16 dynamic range and the

increased precision around 1.

Float16 okay, but bfloat16 useless.

Posit(16,2) has a great potential forEarth-system models!

Page 24: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

SummaryPosits for weather and climate models

Milan KlöwerCoNGA’19

Float64

Float32

Int

CPUWhat we have

Posit(16,2)

Int

PNU

Posit(32,2)

What we want

For now> Use models with 32bit floats, 40-50% speed-up> Rewrite algorithms for low precision> Test Posit(16,2) in various models> Wait For future> Switch Float32 -> Posit32> Test Posit32 -> Posit16

[email protected]@milankloewer

github.com/milankl/juls

Get in touch!

Page 25: Towards 16bit weather and climate models: Posits as an ... · CoNGA’19 Hurricane Sandy 27/10/12 00:00 850hPa wind speed T255L91 ~ 80km Double precision 52sbits 8 significant bits

Perspectives for quiresPosits for weather and climate models

Milan KlöwerCoNGA’19

un+1 = un + RKu (Qhv + ∂xp + Dx + Fx)(1) (2) (3) (4) (5)

Which is the dominant balance of the sum? Only clear at runtime! In Float16

−0.0002 ← 10−1+1 − 1+10−4 − 10−1

−0.0005 ← 10−1+1−10−1 + 10−4−1

0.0001 = 1 − 1 + 10−1 − 10−1 + 10−4But actually this is

un

un+1

−∇p

Qhu⊥

DF