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 droberts@rti.org.

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.

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

A virtual machine "appliance" version of the ABM++ framwork is also provided here. The appliance consists of an Ubuntu image file that can be run using either VirtualBox or VMWare. The ABM++ application is imbedded in the Eclipse IDE in the appliance. The appliance may be run on Windows, MacOSX, or Linux desktop/laptop machines. This environment provides a simple, convenient way to develop, test and debug ABM++ distributed applications without requiring access to a Linux cluster.

See the ABMPlusPlus_User_Guide for more information, and for instructions on how to use the appliance.

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


ABM++ Distributed Source Code ABM++.tar.gz


Virtual Machine Appliance Virtual Machine Appliance Download Page