Post

There'll be a split PROPL this year; a morning set of position papers (including climate modeling), and then a working group where we'll put concrete action items together for what the PL/systems community can work on together on!

We need to get out into the wider world and consider the incentive structures for who will actually use these systems. The benefits of this new structure cannot just go towards those regions that don't need it help.

Since it's a big storage system, stability is super important for a cloud-native weather format. Public providers are moving to it, for example for weather forecasts and cloud data. It supports 'virtual' datasets built from piles of other data so you can compose vast datasets via 'symlinking'

Enzyme works at the LLVM layer so it works on any language and also takes advantage of LLVMs optimisation passes! Avoids derivates of values that don't make sense, and then allocates shadow memory for every differentiable instruction and calculates the derivate from the partial. Performance is good!

Enzyme is useful in real climate problems like the shallow water equations. It saves both execution time and storage costs by smart checkpointing in the compiler pipeline and can run for large tasks. Scientists don't write TPU code typically, but code can be compiled using a parallel.for in Enzyme

Enzyme is full of optimisations like communications fusion and low precision arithmetic towards order of magnitude speedup when running on large deployments. Compilers are a promising route to avoid earth scientists to become domain scientists in high performance computing!

@dorchard.bsky.social then makes the case that general purpose programming languages are impeding our scientific communication! That's because complexity often obscures meaning in our source code. For example, fluid simulations often need to be rewritten for a different hardware architecture

0 reposts0 likes

"Mind the gap" applies to science says @dorchard.bsky.social: code has an abstract model that's lost on the way to getting results. Why don't we communicate via the code? Programming languages are *too* general purpose to help here. Names have no intrinsic meaning in PLs but are helpful to humans.

Mark Piper works with @csdms.bsky.social to do atmospheric science and promote open source software. They focus on model coupling which is crucial to building ensembles of climate predictions. The BMI is a language agnostic, self-describing and extensible method to use for this

BMI has about thirty functions that range from controlling how the model runs, how its initialised/finalised, how timesteps works, extracting and sampling values. But not all functions need to be implemented and are fairly easy to write. It's being widely used in the community now!