🤖 AI Summary
Macroeconomic agent-based models (macro ABMs) face high development barriers, poor computational efficiency, and limited reproducibility. To address these challenges, this paper introduces the first open-source Julia toolkit designed for industrial-scale macro ABM applications. The framework adopts a modular architecture and object-oriented modeling interfaces, enabling efficient construction, simulation, and extensibility of heterogeneous-agent models. By tightly integrating high-performance numerical computing with just-in-time compilation and advanced compiler optimizations, it achieves speedups of several orders of magnitude over MATLAB implementations—and even outperforms MATLAB’s generated C code on representative macro ABM workloads. Rigorous reproducibility is ensured through deterministic execution, cross-language benchmarking support, and comprehensive metadata logging. Released under the AGPL-3.0 license, the toolkit fosters collaborative research and methodological innovation in macro ABM.
📝 Abstract
BeforeIT is an open-source software for building and simulating state-of-the-art macroeconomic agent-based models (macro ABMs) based on the recently introduced macro ABM developed in [1] and here referred to as the base model. Written in Julia, it combines extraordinary computational efficiency with user-friendliness and extensibility. We present the main structure of the software, demonstrate its ease of use with illustrative examples, and benchmark its performance. Our benchmarks show that the base model built with BeforeIT is orders of magnitude faster than a Matlab version, and significantly faster than Matlab-generated C code. BeforeIT is designed to facilitate reproducibility, extensibility, and experimentation. As the first open-source, industry-grade software to build macro ABMs of the type of the base model, BeforeIT can significantly foster collaboration and innovation in the field of agent-based macroeconomic modelling. The package, along with its documentation, is freely available at https://github.com/bancaditalia/BeforeIT.jl under the AGPL-3.0.