Scheduling Precedence-Constrained Jobs on Related Machines with Communication Delay

04/22/2020
by   Biswaroop Maiti, et al.
0

We consider the problem of scheduling n precedence-constrained jobs on m uniformly-related machines in the presence of an arbitrary, fixed communication delay ρ. We consider a model that allows job duplication, i.e. processing of the same job on multiple machines, which, as we show, can reduce the length of a schedule (i.e., its makespan) by a logarithmic factor. Our main result is an O(log m logρ / loglogρ)-approximation algorithm for minimizing makespan, assuming the minimum makespan is at least ρ. Our algorithm is based on rounding a linear programming relaxation for the problem, which includes carefully designed constraints capturing the interaction among communication delay, precedence requirements, varying speeds, and job duplication. Our result builds on two previous lines of work, one with communication delay but identical machines (Lepere, Rapine 2002) and the other with uniformly-related machines but no communication delay (Chudak, Shmoys 1999). We next show that the integrality gap of our mathematical program is Ω(√(logρ)). Our gap construction employs expander graphs and exploits a property of robust expansion and its generalization to paths of longer length. Finally, we quantify the advantage of duplication in scheduling with communication delay. We show that the best schedule without duplication can have makespan Ω(ρ/logρ) or Ω(log m/loglog m) or Ω(log n/loglog n) times that of an optimal schedule allowing duplication. Nevertheless, we present a polynomial time algorithm to transform any schedule to a schedule without duplication at the cost of a O(log^2 n log m) factor increase in makespan. Together with our makespan approximation algorithm for schedules allowing duplication, this also yields a polylogarithmic-approximation algorithm for the setting where duplication is not allowed.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset