simple grid scheduling algo

September 30, 2008

grids are becoming increasingly popular but after you remove some fancy protocols and security measures they are still composed of distributed machines. If you have a fairly ‘dirty’ grid, ie., very heterogeneous and not endowed with MPI etc, when performing data decomposition, some thought must be given as to how data is divided. Suppose you would like to divide M same tasks amongst N processors. If (taking into account network latency etc) one can order the time it takes to perform a single task as a1 < a2 < .. < ai < .. < aN, then a naive division of labor for each node would be:

But this overlooks possible data collision and latency involved in loading buffers at the manager, so take this into account with an extra term, giving the tasks for a single node as:

where b is less than one, and since the total tasks handled by N procs must be M, this implies the relationship btwn r and b:

r may be determined from experiment, and b follows.