Parallel SnowModel
A distributed-memory rewrite of a snow-evolution model, scaled to 1,800 HPC cores to produce a 21-year, 100m-resolution snow record for the continental United States.
Snow simulation at continental scale is a distributed-systems problem as much as it is a physics problem. I architected and implemented Parallel SnowModel, a distributed-memory parallelization of SnowModel using MPI and Coarray Fortran, to make continental-scale, high-resolution simulation computationally tractable.
Engineering Challenges
Blowing-snow transport, solar radiation, and wind redistribution all depend on neighboring grid cells — you can't just tile the domain and run each tile independently. Naively parallelizing a physics model that was written serially means every cross-boundary dependency becomes a potential source of race conditions, deadlocks, or silently wrong results at the domain edges. The challenge wasn't just "make it fast," it was making a 20-year-old serial Fortran codebase produce bit-for-bit-defensible results while running across thousands of cores.
Architecture
I designed halo-exchange communication patterns to synchronize boundary state across compute nodes without serializing the whole simulation. Each compute node owns a spatial tile of the domain plus a "halo" of neighboring cells it doesn't own but needs to read; after each timestep, nodes exchange halo updates with their neighbors via MPI, so the simulation scales horizontally instead of stalling on cross-node dependencies. Coarray Fortran handled the tightly-coupled, low-latency exchanges where MPI's overhead wasn't worth paying.
Scale
Running across HPC systems at up to 1,800 cores, the framework generated more than 150 TB of simulation output spanning 21 years (2000–2021) at 100m resolution across the continental United States — a dataset that didn't exist before because the serial version of the model couldn't produce it in a usable timeframe.
Lessons Learned
Parallelizing legacy scientific code is as much a validation problem as an engineering one: the hardest bugs weren't crashes, they were silent numerical drift at tile boundaries that only showed up when comparing multi-year statistics against the serial baseline. Building a rigorous validation harness against the serial model turned out to be as important as the parallelization itself.
Future Directions
Extending the halo-exchange framework to support adaptive, load-balanced domain decomposition — so compute-heavy regions (e.g., complex terrain with active blowing-snow transport) get more resources automatically instead of a static, uniform tiling.
Why it Matters
This isn't a research prototype that stops at a paper. The parallelized model underpins downstream operational forecasting work (see the Distributed Snow Prediction Platform) and is published as open-source scientific software so other groups can run it at scale on their own HPC systems.