  We consider the problem of scheduling $n$ precedence-constrained jobs on $m$
uniformly-related machines in the presence of an arbitrary, fixed communication
delay $\rho$. 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 \rho / \log \log \rho)$-approximation algorithm for
minimizing makespan, assuming the minimum makespan is at least $\rho$. 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
$\Omega(\sqrt{\log \rho})$. 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 $\Omega(\rho/\log \rho)$ or $\Omega(\log m/\log\log m)$ or
$\Omega(\log n/\log \log 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.
