A distributed implementation of a task pool
In this paper we present a distributed algorithm to implement a task pool. The algorithm can be used to implement a processor farm, i.e., a collection of processes that consume tasks from the task pool and possibly produce tasks into it. There are no restrictions on which process consumes which task nor on the order in which tasks are processed. The algorithm takes care of the distribution of the tasks over the processes and ensures load balancing. We derive the algorithm by transforming a sequential algorithm into a distributed one. The transformation is guided by the distribution of the data over processes. First we discuss the case of two processes, and then the general case of one or more processes.
Keywordsload balancing processor farm distributed computation
Unable to display preview. Download preview PDF.
- E.W. Dijkstra, A Discipline of Programming, (Prentice Hall, Englewood Cliffs, NJ 1976).Google Scholar
- C.A.R. Hoare, Communicating Sequential Processes, Comm. ACM (1978) 666–677.Google Scholar
- C.A.R. Hoare, Communicating Sequential Processes, (Prentice-Hall International Series in Computer Science, 1985)Google Scholar
- A.J. Martin, An Axiomatic Definition of Synchronization Primitives, Acta Informatica16, (1981) 219–235.Google Scholar
- A.J. Martin, The Probe: An Addition to Communication Primitives, Information Processing Letters 20 (1985) 125–130Google Scholar