  We consider the problem of coded distributed computing where a large linear
computational job, such as a matrix multiplication, is divided into $k$ smaller
tasks, encoded using an $(n,k)$ linear code, and performed over $n$ distributed
nodes. The goal is to reduce the average execution time of the computational
job. We provide a connection between the problem of characterizing the average
execution time of a coded distributed computing system and the problem of
analyzing the error probability of codes of length $n$ used over erasure
channels. Accordingly, we present closed-form expressions for the execution
time using binary random linear codes and the best execution time any
linear-coded distributed computing system can achieve. It is also shown that
there exist \textit{good} binary linear codes that not only attain
(asymptotically) the best performance that any linear code (not necessarily
binary) can achieve but also are numerically stable against the inevitable
rounding errors in practice. We then develop a low-complexity algorithm for
decoding Reed-Muller (RM) codes over erasure channels. Our decoder only
involves additions, subtractions, {and inversion of relatively small matrices
of dimensions at most $\log n+1$}, and enables coded computation over
real-valued data. Extensive numerical analysis of the fundamental results as
well as RM- and polar-coded computing schemes demonstrate the excellence of the
RM-coded computation in achieving close-to-optimal performance while having a
low-complexity decoding and explicit construction. The proposed framework in
this paper enables efficient designs of distributed computing systems given the
rich literature in the channel coding theory.
