  A coflow is a collection of parallel flows belonging to the same job. It has
the all-or-nothing property: a coflow is not complete until the completion of
all its constituent flows. In this paper, we focus on optimizing
\emph{coflow-level delay}, i.e., the time to complete all the flows in a
coflow, in the context of an $N\times N$ input-queued switch. In particular, we
develop a throughput-optimal scheduling policy that achieves the best scaling
of coflow-level delay as $N\rightarrow\infty$. We first derive lower bounds on
the coflow-level delay that can be achieved by any scheduling policy. It is
observed that these lower bounds critically depend on the variability of flow
sizes. Then we analyze the coflow-level performance of some existing
coflow-agnostic scheduling policies and show that none of them achieves
provably optimal performance with respect to coflow-level delay. Finally, we
propose the Coflow-Aware Batching (CAB) policy which achieves the optimal
scaling of coflow-level delay under some mild assumptions.
