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!

0 reposts1 like

@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

"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.