We describe a distributed agent based epidemic model that is capable of easily simulating several hundred million agents. The model is adaptable to shared-memory and distributed-memory architectures. Several problems are addressed to enable the distributed simulation: allocation of agents to available compute nodes, periodic synchronization of compute nodes, and efficient communica-tion between compute nodes. We assert that our modeling scheme is easily adaptable to different hardware environments and does not require large in-vestments in performance tuning or special case coding.
We set out to create an agent based model (ABM) of dis-ease transmission. We designed our model to suit multi-ple research projects, collaborators, and computing facili-ties. Consequently, our model had to satisfy many different requirements. The model had to be capable of supporting different diseases. It also had to support two different computing environments. One environment was a 64 bit Linux-based distributed-memory cluster with low latency interconnects. The other environment was a pair of Windows-based quad processor servers each with 32 GB of shared-memory. Our last major requirement was to be able to support populations from several hundred million to 6 billion agents.
In this paper we will discuss the overall design of the model. We will also explicitly cover three topics. We will detail the synchronization of multiple computers, and the allocation of agents to those computers. We also dedicate a section to the implementation of the communi-cation protocol. This last section is the only language specific section in the paper.