  In this paper, we investigate the problem of multi-user linearly decomposable
function computation, where $N$ servers help compute functions for $K$ users,
and where each such function can be expressed as a linear combination of $L$
basis subfunctions. The process begins with each server computing some of the
subfunctions, then broadcasting a linear combination of its computed outputs to
a selected group of users, and finally having each user linearly combine its
received data to recover its function. As it has become recently known, this
problem can be translated into a matrix decomposition problem
$\mathbf{F}=\mathbf{D}\mathbf{E}$, where $\mathbf{F} \in \mathbf{GF}(q)^{K
\times L}$ describes the coefficients that define the users' demands, where
$\mathbf{E} \in \mathbf{GF}(q)^{N \times L}$ describes which subfunction each
server computes and how it combines the computed outputs, and where $\mathbf{D}
\in \mathbf{GF}(q)^{K \times N}$ describes which servers each user receives
data from and how it combines this data. Our interest here is in reducing the
total number of subfunction computations across the servers (cumulative
computational cost), as well as the worst-case load which can be a measure of
computational delay. Our contribution consists of novel bounds on the two
computing costs, where these bounds are linked here to the covering and packing
radius of classical codes. One of our findings is that in certain cases, our
distributed computing problem -- and by extension our matrix decomposition
problem -- is treated optimally when $\mathbf{F}$ is decomposed into a parity
check matrix $\mathbf{D}$ of a perfect code, and a matrix $\mathbf{E}$ which
has as columns the coset leaders of this same code.
