  Multiserver-job systems, where jobs require concurrent service at many
servers, occur widely in practice. Essentially all of the theoretical work on
multiserver-job systems focuses on maximizing utilization, with almost nothing
known about mean response time. In simpler settings, such as various known-size
single-server-job settings, minimizing mean response time is merely a matter of
prioritizing small jobs. However, for the multiserver-job system, prioritizing
small jobs is not enough, because we must also ensure servers are not
unnecessarily left idle. Thus, minimizing mean response time requires
prioritizing small jobs while simultaneously maximizing throughput. Our
question is how to achieve these joint objectives.
  We devise the ServerFilling-SRPT scheduling policy, which is the first policy
to minimize mean response time in the multiserver-job model in the heavy
traffic limit. In addition to proving this heavy-traffic result, we present
empirical evidence that ServerFilling-SRPT outperforms all existing scheduling
policies for all loads, with improvements by orders of magnitude at higher
loads.
  Because ServerFilling-SRPT requires knowing job sizes, we also define the
ServerFilling-Gittins policy, which is optimal when sizes are unknown or
partially known.
