Topology preserving dynamic load balancing for parallel molecular simulations
Authors: David F. Hegarty, M. T. Kechadi
Venue: Proceedings of the 1997 ACM/IEEE conference on Supercomputing (CDROM) (1997)

Understanding the behavior of molecular systems such as DNA and proteins is a central problem in the field of physical chemistry. Most research laboratories now have a collection of heterogeneous processing architectures which could be brought to bear on this problem - high end PCs, various different workstations, and time on high performance machines [8, 11, 20]. Much work is currently being done on programming tools to exploit the different architectures, but most of this work to date is aimed at the programmer, who must spend time learning how to use message passing or parallel object oriented languages. The research scientist wishes simply to run their simulations as fast as possible. The work of our group includes the design of an environment[18] for the production of parallel code implementing the simulation of complex polymers, proteins and DNA molecules.The problems encountered in simulations of polymers, DNA and proteins often have straightforward parallel realizations, since the domain can be decomposed either spatially or along the molecular chain, and then a simple extension of the serial algorithm applied (at least for molecular mechanics - Monte Carlo methods need a little more work to ensure the criterion of detailed balance is adhered to) [5, 6, 19]. However, since the problems are completely dynamic in nature, any such decomposition will lead to an inefficient parallelization after sometime. Dynamic load balancing must then be applied to increase a simulations efficiency.To resolve the problem several load-balancing techniques have been proposed for SIMD [2, 16] and MIMD [12, 21,23, 25] models. We can distinguish between static and dynamic techniques. In contrast to static load balancing, where the decision as to which processors the workload is allocated is fixed at compilation, dynamic load balancing takes the behavior of the application and the system characteristics into account to distribute fairly the workload among the available processors. Dynamic load balancing is also characterized by the manner in which data are exchanged and controlled. The control can be centralized [22, 4] or distributed [14, 28, 7]. Distributed load balancing strategies are incorporated to each node of the system so that each can make decisions independently of the others.The control phase is characterized by the collection of information on the state of the system, such as the load on a processor, the number of idle processors, etc., and the decision making (whether the system is balanced or not). This phase is often absent in dynamic distribution strategies for data-parallel applications [9, 10, 17, 24]. The distribution phase is the main body of all algorithms which are generally based on the following criteria: 1) fair distribution of load, 2) minimization of communication introduced by the new distribution, 3) efficiency of the distribution procedure for data migrating from overloaded nodes to under-loaded (efficient routing algorithm), 4) respecting the topology of the application, and 5) simplicity of the algorithm to reduce to a minimum the execution time of the algorithm.Problems in the area of molecular simulation, among others, can be characterized by the fact that some part of the problem topology remains fixed at least for large parts of the simulation. Chemically bonded monomer groups remain close to their neighbors for large parts of the simulation. Load balancing techniques that redistribute the problem domain without taking this fact into account lead to increased levels of communication, and to a reduction in efficiency.Our work is in developing topology preserving load balancing algorithms for MIMD machines, and in this paper we focus on the analysis and performance of one such algorithm, Positional Scan Load Balancing, and its suitability for use in the runtime system of the parallel simulation environment.