  Distributed computing has become a common practice nowadays, where the recent
focus has been given to the usage of smart networking devices with in-network
computing capabilities. State-of-the-art switches with near-line rate computing
and aggregation capabilities enable acceleration and improved performance for
various modern applications like big data analytics and large-scale distributed
and federated machine learning.
  In this paper, we formulate and study the theoretical algorithmic foundations
of such approaches, and focus on how to deploy and use constrained in-network
computing capabilities within the data center. We focus our attention on
reducing the network congestion, i.e., the most congested link in the network,
while supporting the given workload(s). We present an efficient optimal
algorithm for tree-like network topologies and show that our solution provides
as much as an x13 improvement over common alternative approaches. In
particular, our results show that having merely a small fraction of network
devices that support in-network aggregation can significantly reduce the
network congestion, both for single and multiple workloads.
