Load balancing in individual-based spatial applications

Individual-based spatial simulations are a class of applications in which a collection of entities interact locally with one another within a simulated space to generate some global collective behavior. An Eulerian implementation of such a system, partitions the simulated space and assigns each partition, together with the corresponding entities, to a different physical node. Load balancing is achieved by dynamically adjusting the decomposition of the simulated space, which forces the corresponding autonomous entities to automatically migrate among physical nodes. This paper presents three load balancing algorithms suitable for such applications. Their primary advantages are (1) full integration into the application, which permits load balancing to be performed without suspending the application and without any additional messages, and (2) use of only near-neighbor communication, which facilitates scalability.