| OCR Text |
Show 20 data flow characteristic of applicative languages makes it difficult to predict the behavior of the program, and hence inappropriate for static task allocation methods. In this chapter, the load balancing issue of applicative systems is first discussed. A loosely-coupled, large-scale multiprocessing system with reasonably high communication bandwidth between processors is assumed. Related load balancing strategies are summarized in the following section. The intuitive meaning and design considerations of our load balancing approach are explained in section 2.3. A formal model for load migration and balancing is described in section 2.4. Section 2.5 tabulates some simulation results based on a general purpose simulator written in SIMULA. An implementation of the proposed model on an applicative multiprocessor system is discussed in section 2.6. Simulation of the applicative system is described and the results are presented. Section 2. 7 suggests some extensions to the balancing model and summarizes the findings of this research. 2.2 Related research Stone [57, 58] studied load balancing algorithms for a two processor system. He assumed prior knowledge of the computation time for every task on each processor. Stone's algorithm constructs a graph wherein the processor nodes are sources and sinks. It is shown that the maximum flow, minimum cut set of this graph specifies the optimal assignment of tasks to machines to maximize the throughput. Gao [20] suggested two static distributed algorithms for load balancing in a homogeneous system. Each node periodically informs all other nodes of its own load level and estimates the load levels of all other processors. The job dispatcher then decides any need for load migration. Simulation results show both algorithms work well. Load balancing in the Purdue Engineering Computer Network [29] is imple-mented with a deterministic balancing policy. Only a set of CPU-bound |