A cache-aware environment integrating Agent-Based Simulation with Parallel/Distributed Discrete-Event Simulation
MetadataShow full item record
We address the challenge of providing a high performance Agent-Based Simulator (ABS). ABS systems offer a convenient API for research in large-scale multi-agent systems, but they suffer from poor runtime performance when compared to alternative multi-agent system simulation methodologies. ABS provides an effective means for composing computational models that simulate the actions and interactions of autonomous agents (individual or collective entities such as organizations or groups). These simulation systems focus on assessing the complex system as a whole. Research in this field combines elements of game theory, complex systems, emergence, computational sociology, multi-agent systems, and evolutionary programming. By improving the performance of these simulation systems we enable research in these areas to move forward more quickly. ABS has been under development and in use for a few decades, but current ABS programs are usually designed to run on a single machine and they are usually difficult to scale, which greatly hinders its development and application. Our approach enables ABS systems to run as much as 10X faster than before with no degradation in quality of the result. Our solution is a novel integration of an ABS API with an underlying Parallel/Distributed Discrete Event Simulation (PDES) Executive. PDES provide high performance solutions to a number of applications, including: job allocation and scheduling, load balancing and inter-machine communication. We designed and implemented an effective, fast and scalable cache-aware environment that allows for a standard agent-based API to leverage a standard PDES simulation kernel. We also invented a novel caching scheme called Computation Block Caching that solves two major problems that traditional caching mechanisms have not solved: caching state variables and returning multiple values for a single key. Experimental evaluation shows that our cache-aware environment substantially enhances performance and at the same time is easy for application programmers to use.