A technique is presented for processing compute intensive jobs using a network of inexpensive computers which may differ in processing power and perhaps communication speed. The objective is to keep all processors busy, irrespective of their speed and processing load. To do this, a FIFO free server Q is employed, and the data is partitioned into m packets, where m > n, the number of servers available in the network. A server enters the free server Q when ready, and is assigned processing. When done, the server sends the partial results to the client and reenters the free server Q. If the server times out because of excessive load or hardware instabilities, that portion of the work is reassigned to the next server in the Q. Dynamic load balancing is facilitated since faster servers (at that point in time) will request and process more packets than slower ones.
展开▼