  The paper studies approximations and control of a processor sharing (PS)
server where the service rate depends on the number of jobs occupying the
server. The control of such a system is implemented by imposing a limit on the
number of jobs that can share the server concurrently, with the rest of the
jobs waiting in a first-in-first-out (FIFO) buffer. A desirable control scheme
should strike the right balance between efficiency (operating at a high service
rate) and parallelism (preventing small jobs from getting stuck behind large
ones).
  We employ the framework of heavy-traffic diffusion analysis to devise near
optimal control heuristics for such a queueing system. However, while the
literature on diffusion control of state-dependent queueing systems begins with
a sequence of systems and an exogenously defined drift function, we begin with
a finite discrete PS server and propose an axiomatic recipe to explicitly
construct a sequence of state-dependent PS servers which then yields a drift
function. We establish diffusion approximations and use them to obtain
insightful and closed-form approximations for the original system under a
static concurrency limit control policy.
  We extend our study to control policies that dynamically adjust the
concurrency limit. We provide two novel numerical algorithms to solve the
associated diffusion control problem. Our algorithms can be viewed as "average
cost" iteration: The first algorithm uses binary-search on the average cost and
can find an $\epsilon$-optimal policy in time $O\left( \log^2
\frac{1}{\epsilon} \right)$; the second algorithm uses the Newton-Raphson
method for root-finding and requires $O\left( \log \frac{1}{\epsilon} \log\log
\frac{1}{\epsilon}\right)$ time.
  Numerical experiments demonstrate the accuracy of our approximation for
choosing optimal or near-optimal static and dynamic concurrency control
heuristics.
