Automatically Distributing Eulerian and Hybrid Fluid Simulations in the Cloud
Published in ACM Transactions on Graphics 37, 2, Article 24, April 2018.
Abstract
Distributing a simulation across many machines can drastically speed up computations and increase detail. The computing cloud provides tremendous computing resources, but weak service guarantees force programs to manage significant system complexity: nodes, networks, and storage occasionally perform poorly or fail.
We describe Nimbus, a system that automatically distributes grid-based and hybrid simulations across cloud computing nodes. The main simulation loop is sequential code and launches distributed computations across many cores. The simulation on each core runs as if it is stand-alone: Nimbus automatically stitches these simulations into a single, larger one. To do this efficiently, Nimbus introduces a four-layer data model that translates between the contiguous, geometric objects used by simulation libraries and the replicated, fine-grained objects managed by its underlying cloud
computing runtime.
Using PhysBAM particle level set fluid simulations, we demonstrate that Nimbus can run higher detail simulations faster, distribute simulations on up to 512 cores, and run enormous simulations (10243 cells). Nimbus automatically manages these distributed simulations, balancing load across nodes and recovering from failures. Implementations of PhysBAM water and smoke simulations as well as an open source heat-diffusion simulation show that Nimbus is general and can support complex simulations.
Nimbus can be downloaded from https://nimbus.stanford.edu.
BibTeX entry
@inproceedings{nimbus-tog18,
author = "Omid Mashayekhi and Chinmayee Shah and Hang Qu and Andrew Lim and Philip Levis",
title = "{Automatically Distributing Eulerian and Hybrid Fluid Simulations in the Cloud}",
booktitle = "{ACM Transactions on Graphics 37, 2, Article 24}",
year = {2018},
month = {April}
}