ABMax: A JAX-based Agent-based Modeling Framework
Siddharth Chaturvedi, Ahmed El-Gazzar, Marcel van Gerven
TL;DR
ABMax addresses the challenge of updating a dynamic subset of agents under JAX's static-shape constraint by introducing two algorithms, $RM$ and $SCI$. The framework leverages JAX transforms (jit, vmap) and flax.struct to keep data structures compatible with transformations, enabling vectorization across multiple ABMs. It demonstrates on a canonical predation benchmark and on traffic and financial market scenarios, showing competitive performance and scalable parallel simulations. The work provides a practical, vectorization-friendly ABM toolkit that reduces boilerplate and broadens the use of large-scale ABMs on accelerators.
Abstract
Agent-based modeling (ABM) is a principal approach for studying complex systems. By decomposing a system into simpler, interacting agents, agent-based modeling (ABM) allows researchers to observe the emergence of complex phenomena. High-performance array computing libraries like JAX can help scale such computational models to a large number of agents by using automatic vectorization and just-in-time (JIT) compilation. One of the caveats of using JAX to achieve such scaling is that the shapes of arrays used in the computational model should remain immutable throughout the simulation. In the context of agent-based modeling (ABM), this can pose constraints on certain agent manipulation operations that require flexible data structures. A subset of which is represented by the ability to update a dynamically selected number of agents by applying distinct changes to them during a simulation. To this effect, we introduce ABMax, an ABM framework based on JAX that implements multiple just-in-time (JIT) compilable algorithms to provide this functionality. On the canonical predation model benchmark, ABMax achieves runtime performance comparable to state-of-the-art implementations. Further, we show that this functionality can also be vectorized, making it possible to run many similar agent-based models in parallel. We also present two examples in the form of a traffic-flow model and a financial market model to show the use case of ABMax
