  Data aggregation is a fundamental primitive in distributed computing wherein
a network computes a function of every nodes' input. However, while compute
time is non-negligible in modern systems, standard models of distributed
computing do not take compute time into account. Rather, most distributed
models of computation only explicitly consider communication time.
  In this paper, we introduce a model of distributed computation that considers
\emph{both} computation and communication so as to give a theoretical treatment
of data aggregation. We study both the structure of and how to compute the
fastest data aggregation schedule in this model. As our first result, we give a
polynomial-time algorithm that computes the optimal schedule when the input
network is a complete graph. Moreover, since one may want to aggregate data
over a pre-existing network, we also study data aggregation scheduling on
arbitrary graphs. We demonstrate that this problem on arbitrary graphs is hard
to approximate within a multiplicative $1.5$ factor. Finally, we give an
$O(\log n \cdot \log \frac{\mathrm{OPT}}{t_m})$-approximation algorithm for
this problem on arbitrary graphs, where $n$ is the number of nodes and
$\mathrm{OPT}$ is the length of the optimal schedule.
