Multi-core and multi-processor environments are increasingly used to
support a wide range of applications. These environments host multiple services simultaneously. The set of processors configured to support a particular
service depends upon the associated workload; fluctuations in workload require
changes in processor allocation. In these systems, reallocating a processor from
one service to another tends to incur a nonnegligible overhead. Motivated by
these applications, this dissertation considers a class of scheduling problems
that we refer to as reconfiguration resource scheduling. The salient features of
this class are as follows: There are jobs of different categories, and resources
can be reconfigured to process jobs of a certain category, where a reconfiguration incurs an overhead, in terms of cost or time.
In our initial investigation, we study the following subclass of the class
of reconfigurable resource scheduling problems. We are given a finite set of resources, each of which has an associated category, and a sequence of requests, each of which is a set of unit jobs. Each job has an associated category, and
needs to be executed on a resource of the same category within a specified
delay bound of its arrival, or else it is dropped at a specified drop cost. At
any time, a resource can be reconfigured to a different category at a specified reconfiguration cost. The goal is to schedule the reconfigurations of the
resources, and the executions of the jobs, in a way that minimizes the total
cost.
We design efficient online algorithms with provably good performance
for two main problems in this subclass, one allowing category-specific drop
costs, which we refer to as reconfigurable resource scheduling with variable
drop costs, and the other allowing category-specific delay bounds, which we
refer to as reconfigurable resource scheduling with variable delay bounds.
Reconfigurable resource scheduling with variable drop costs is motivated by certain applications in which some jobs are more important than
others. We solve this problem using a layered approach, where in each layer
we reduce to a scheduling problem defined over a more constrained set of possible inputs. In the first layer, we reduce to the special case in which all job
arrivals are batched. In the second layer, we reduce to the special case in which
the job arrival rate is limited. In the third layer, we reduce the rate-limited
problem to two cases: large reconfiguration cost, and small reconfiguration
cost. We use a traffic reshaping technique to smooth out the job arrivals, and
thereby reduce the case with large reconfiguration cost to the special case of
unit delay, and reduce the case with small reconfiguration cost to the special case of rate-limited unit delay. In the fourth layer, we reduce unit delay
with large reconfiguration cost to a caching problem which we refer to as file
caching with remote reads, and reduce rate-limited unit delay with small reconfiguration cost to a variant of disk paging problem which we refer to as
prefix paging. In the fifth layer, we solve the file caching with remote reads
problem by generalizing certain existing work in the area of file caching, and
we solve prefix paging using a kind of marking algorithm.
Reconfigurable resource scheduling with variable delay bounds is motivated by applications in which jobs are required to be processed within
category-specific delay guarantees. Once again, we use a layered approach.
The first two layers are analogous to the first two layers in our solution for
reconfigurable resource scheduling with variable drop costs, respectively, but
are more involved due to the variable delay bounds. In the third layer, we
solve the rate-limited problem using a novel combination of the EDF and
LRU scheduling principles.Computer Science