ABM++ Download Site

The ABM++ software framework is a tool which allows the developer to implement agent based models using C++ that are to be deployed on distributed memory Linux clusters. The framework provides the necessary functionality to allow applications to run on distributed architectures. A C++ message passing API is provided which provides the ability to send MPI messages between distributed objects. The framework also provides an interface that allows objects to be serialized into message buffers, allowing them to be moved between distributed compute nodes. A synchronization method is provided, and both time-stepped and distributed discrete event time update mechanisms are provided. For further information, contact doug@parrot-farm.net.

ABM++ is completely flexible with respect to how the developer chooses to design his C++ representations of agents. All of the functionality necessary for distributed computation is provided by the framework; the developer provides the C++ agent implementations for his application. Distributed computing functionality is provided by the framework to the application via simple inheritance and containment. The source code includes a simple working example in the Applications directory to illustrate how the framework is used.

This is Version 2.0 of ABM++ which reads the synthetic social network data in the Data directory. This data includes a synthetic population for Shelby County, TX, as well as synthetic household, school, and workplace locations.

To build, edit the Makefiles in the MPIToolbox and Application directories to match your system, and then do “make” in each directory.

See the ABM++ User's Guide for more information.

This code is released under the terms of the GNU General Programming License (GPL).

ABM++ Source Code


ABM++ User's Guide