  SOTA decentralized SGD algorithms can overcome the bandwidth bottleneck at
the parameter server by using communication collectives like Ring All-Reduce
for synchronization. While the parameter updates in distributed SGD may happen
asynchronously there is still a synchronization barrier to make sure that the
local training epoch at every learner is complete before the learners can
advance to the next epoch. The delays in waiting for the slowest
learners(stragglers) remain to be a problem in the synchronization steps of
these state-of-the-art decentralized frameworks. In this paper, we propose the
(de)centralized Non-blocking SGD (Non-blocking SGD) which can address the
straggler problem in a heterogeneous environment. The main idea of Non-blocking
SGD is to split the original batch into mini-batches, then accumulate the
gradients and update the model based on finished mini-batches. The Non-blocking
idea can be implemented using decentralized algorithms including Ring
All-reduce, D-PSGD, and MATCHA to solve the straggler problem. Moreover, using
gradient accumulation to update the model also guarantees convergence and
avoids gradient staleness. Run-time analysis with random straggler delays and
computational efficiency/throughput of devices is also presented to show the
advantage of Non-blocking SGD. Experiments on a suite of datasets and deep
learning networks validate the theoretical analyses and demonstrate that
Non-blocking SGD speeds up the training and fastens the convergence. Compared
with the state-of-the-art decentralized asynchronous algorithms like D-PSGD and
MACHA, Non-blocking SGD takes up to 2x fewer time to reach the same training
loss in a heterogeneous environment.
