Multi-Stage Vertex-Centric Programming for Agent-Based Simulations
summary
Vertex-centric compute functions are lifted at compile time into a sequence of closures separated by a wait() staging primitive so code for different supersteps avoids runtime dispatch and duplicated blocks. The CloudCity front end generates those closures, merges linear sequences, and emits BSP-style superstep code for distributed execution. Microbenchmarks show lower variance and up to 25% faster runs versus unstaged implementations, with fewer branches and simpler control flow.
AI-written summary · about
chapters (9)
- 0:00Multi-stage vertex-centric intro
- 1:05What is vertex-centric
- 3:14Agent-based simulations
- 7:10Simulation framework limits
- 9:41Control flow problems
- 11:31Binding constructs solution
- 13:59Multi-stage execution
- 15:23Evaluation and results
- 16:09Q&A
related talks
44mCellPond: Spatial programming without escape
41mHelion's New CuTe DSL and Pallas Backends and How We Built Them Via Agents
55mNew Bytecodes, New Objects
33mEmpyrean Evaluation
14mMulti-stage Programming in the Large with Staged Classes
18mSuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT(…)
21mMassive proofs for the masses
43mAuto-Vectorization in HotSpot
