>> Nikhil Devanur Rangarajan: Hello everyone. It's my... Debmalya who is a professor at Duke University. Debmalya...

advertisement
>> Nikhil Devanur Rangarajan: Hello everyone. It's my great pleasure to welcome back
Debmalya who is a professor at Duke University. Debmalya had a long association with
Microsoft Research being an intern here multiple times and a postdoc and now a visitor. He is
going to tell us about energy efficient scheduling in the non-clairvoyant model and most of the
work was done actually when all of the authors were here. When Debmalya was a postdoc,
Yossi was a visitor and Zhiyi was an intern. This is one of the best people awarded so far so we
had a very productive effort from all of us. And so on to Debmalya.
>> Debmalya Panigrahi: Thank you Nikhil. This is joint work with Yossi Azar and two authors
who are in the room, Zhiyi Huang and Nikhil Devanur. This talk will be about going green.
What we mean by that is we would like to compute in an energy efficient manner. There has
been growing interest in energy efficiency in computing both in the theory community, where
energy is now increasingly being treated as a first-class resource, in addition to traditional
resources like space and time. And also, in practice, because there are several applications
such as those in data centers where it's important that algorithms are aware of the energy
usage of a particular scheduling plan for a particular execution. In fact, scheduling jobs on
machines is one of the key problem domains aware energy efficiency plays an important role,
which is exactly what we'll be talking about today. There are two kinds of paradigms of energy
efficient scheduling that have been popular. These two paradigms come from the two
dominant application domains where energy is an important resource. They represent kind of
the two extremes of computing as we know it. One domain is our data centers, which is sort of
the highest order the largest scale computing that we see today. And there the dominant
technique for managing energy is what are known as power down schedules. What that means
is that at certain points of time you shut down some subset of machines in the data center and
allow them to cool and restart them after a while. There has been some growing body of
literature which talks about algorithms for power down scheduling. But what we're going to
talk about today is at the other end of the spectrum on handheld devices where, again, energy
is an important resource. There the technique for managing energy is somewhat different
because you can't quite a power down devices. Instead, what are used are known as speed
scaling processes. What does this mean? It basically means a processor that can run at various
energy levels. Either you can run it fast and it processes jobs faster, but it consumes higher
levels of energy. Or you can run at slower and then it consumes less energy but you'll take a
longer time to complete the same job. This is what we'll talk about today. In particular, we are
going to look at what is one of the most basic problems in this domain. You have a time axis
and jobs arrive over time. This is standard scheduling. What are the jobs characterized by?
Jobs have a release time. At some point of time you get to know that the job, so the job arrives
in the system and you know that the job needs to be scheduled. That's the release time of the
job. Jobs have an important score which we call density and we'll see why it's called density
soon. It also has a volume. This is the total amount of computation that the job requires, and
we will define the weight of a job to be the product of the density and the volume, the product
of the importance and the total amount of processing that you need to do. These are the
parameters that define a job for me. All of these jobs come online or, over time and they need
to be scheduled on a single machine. I just have one machine. I have a bunch of jobs arriving.
The jobs need to be scheduled on the machine. The key feature is that this machine is speed
scalable, so I can run this machine at various different speeds and depending on how fast I'm
running the machine I'll consume a certain amount of energy and I will complete the jobs at a
together time. What's the problem then? The problem is to decide two things. First, if I have a
bunch of jobs that are awaiting processing, I need to decide which of them I should process on
the machine. The machine can process only one job at a time. That is the first selection that I
need to do. Then, once I have selected the job to process on the machine, I need to specify the
speed at which I'll run the machine. Remember, the machine is speed scalable, so it can run at
various different speeds and I need to tell you what speed the machine is running at at any
given time. These are the two things that the scheduler should tell me. The way the speed
shows up is that it impacts both the energy and the processing time. In particular, the rate of
decrease of the volume of the job that's remaining, that's being currently processed and the
volume that remains decreases at the rate that is equal to the current speed. If I'm running the
machine at say speed 10, that means that for every unit of time the remaining volume
decreases by 10 units. That's the natural definition for speed. How does speed influence
energy? The influence is through what is usually called a power curve. This is just a mapping
from speeds to energies, or speeds too instantaneous powers. Typically we will assume that
this power curve is a convex curve. It's a small polynomial function of the speech. So about s
cubed or s squared or somewhere in between. This is the setup. The question is what am I
trying to optimize. At a high-level it's clear what I want to optimize. I want to optimize two
things. First jobs shouldn't wait in the system forever, so I want to optimize delay, or latency.
And second, I should not be running my machines at crazy speeds, so I want to optimize energy.
At a high-level these are the two things I want to optimize. Energy is quite easy to quantify. It's
just area under the power curve, so that every instant of time you are running your machine at
a particular speed that translates into a particular power consumption according to the power
curve and energy is simply the area under this curve. But how about the delay? How do we
quantify delay? The standard way to quantify delay is by using what is known as flow times.
For time is basically just delay but multiplied by weight, so you take the difference between the
completion time and the release time of a job. This is the total time that the job spends in the
system, and you multiply it by the weight of the job. That's the full-time of the job and use sum
it up overall jobs and that is your quantification of delay. For the purpose of this talk, though it
is not strictly required for the result, but for this talk it will be convenient to introduce a slightly
different notion of flow time that will make our life a little easier to make things geometric. We
call it the fractional flow time of a job. Here is a way to understand what this means. Take
every job, think of it being split up into very small jobs, let's say epsilon value. There are zillions
of such jobs. Now for each of them you compute the flow time according to the formula that
you had earlier. Each of these small pieces of the job get completed at a certain point of time.
You subtract the release time of the job from it. All of these jobs are released at the same time
when the entire job shows up. You take the difference and you sum it up over all these small
pieces. That's the fractional flow time of the job. In this talk I'll restrict myself to fractional flow
times rather than going to integral flow times. Here are all of the results generalized. One way
to think of the fractional flow time, as I said, is that that is the sum of the flow times of these
infinitely many parts. An alternate view is that, in fact it's integral over the total weight of all
jobs left in the system at any point of time. If you think about it, at any point of time which are
the jobs contributing to your flow time? Which of these infinitely small jobs contributing to
your fractional flow time? It's exactly those jobs that are still in the system that haven't been
processed. This is simply the integral overall of the remaining weight over the entire time axis.
Therefore, it can be drawn as, if I draw the curve of the remaining weight instantaneously, and
take the area under the curve, that's in fact the fractional flow time of the job. These are the
two things that I want to optimize. As a standard in literature, what I'll actually do is, by the
way. Sometimes the fractional flow time also increases because new jobs are released and
therefore the remaining weight increases. In order to do this the following standard
convention is that in fact, I'll optimize the sum of these two quantities. Summing these two by
the weight, all the results hold even if you scale these in whatever way you want. You can
change the scale on the two. You can take any linear combination.
>>: Can you also say that if I give you a bound?
>> Debmalya Panigrahi: No. That is stronger. That's not clear. That's not clear. The part that
we are doing is going to give you criteria like bounds, but then we will piggyback on something
that was previously known and there the bounds are not quite [indiscernible].
>>: In theory do you have the task of [indiscernible]
>>: So you won't convert apples to oranges?
>> Debmalya Panigrahi: Yeah.
>>: So are the jobs preempted?
>> Debmalya Panigrahi: Yes. If the preemption is free and allowed. That's the problem. Any
questions about the problem? So what was known for this problem? What was known is what
was known as the clairvoyant setting. In this setting when a job arrives all the parameters of
the job are revealed. When you see the job you get to know its density, its weight, it's volume
all of the parameters. For this setting there was a series of works which I won't quite go
through, but the key one that we will use this following observation. It says that if I have a
bunch of jobs arriving over time, the right thing to do is to use the following two rules.
Remember, why do I need two rules? Because there are two decisions that I am making, which
job should I process and at what speed? The job to process is given by this HDF rule, which
means highest density first. Among all the jobs that are awaiting processing, I look at the job
that has the maximum density, that's the job I should process. It's sort of intuitive, right,
because that's the one that will differentially and the most to my weight. That's the job I
process, and at what speed should I process it? For that, the first rule is that you should set the
power, the instantaneous power to be exactly equal to the total remaining weight of all jobs in
the system. That's the P equals RW rule. We'll see why this gives certain…
>>: [indiscernible] maximum? [indiscernible] power be the remaining weight?
>> Debmalya Panigrahi: Take the entire remaining weight.
>>: [indiscernible] you are making a sum, right?
>> Debmalya Panigrahi: The units are already matched in the sum. Okay? And Bansal, Chan
and Pruhs proved is that these two rules in conjunction give you a 2 competitive algorithm. So
the total value of the objective produced by the algorithm is at most twice that of an optimal
solution. But that competitive ratio is not in terms of each individual objective. If it were, then
what [indiscernible] was suggesting some kind of arbitrary approximation would have been
possible.
>>: What is epsilon?
>> Debmalya Panigrahi: Epsilon is, where is us on showing up? I think it shows up in -- where
does epsilon show up?
>>: [indiscernible]
>> Debmalya Panigrahi: I don't remember.
>>: [indiscernible] function and they need some kind of way to make a convex and then you do
a approximation of it so that it's like maybe strictly convex so it's kind of a [indiscernible]
>> Debmalya Panigrahi: Yeah, maybe the number of [indiscernible] falls into the power
function. Something like that. That's the rule that was now. So how does this algorithm work?
If you think of drawing the power curve over time, so let's say I have only one job at the
beginning. So I set my power to be equal to the weight of the job, the total remaining weight.
And then this job keeps getting processed at some point and a new job is released at time R2.
Immediately, I increased to bump up the speed of the machine because I want to maintain this
rule that the remaining weight is equal to power, instantaneous power, and also if the second
job that was released is a higher density job, I, in fact, preempted the first job. I take the red
job out of the system and I put the blue job in. As you can see, the blue job, maybe you can't
quite see it, but the blue job has a steeper slope which indicates that it is a higher density job.
That's why the weight is decreasing faster. And then once the blue job finishes, I resume the
first job. This is the kind of power curve that the clairvoyant algorithm gives us. The question is
what do we do if we don't know the remaining weights. We don't know the weight of the job,
which means that we can't quite run this algorithm because even at times zero I need to know
the total weight. Before I go on let me mention that there are two different models in which
you can think of non-clairvoyant. You can either think of knowing the total weight of the job
when it arrives or the total density of the job when it arrives. Of course, if you know both then
you know all of the parameters. The one that we will consider is the one where we know the
density, so we know the importance of the job but we don't know the total weight of the job,
and therefore, we don't know the volume either. There has been a little bit of work in the
other setting where you know the weights but you don't know the densities and there are some
results. But we won't concern ourselves with this. This is the algorithm in the clairvoyant
setting. One thing to note here is that the area under the curve represents both the
parameters that we are trying to optimize. If you remember, I drew these two curves. One was
the instantaneous power curve and the other was the remaining weight curve and I did the two
objectives were in fact the areas under the two curves. Here the two curves, the algorithm has
been chosen in a way such that these two curves are exactly the same because power equals
remaining weight. Therefore, the two objectives are in fact the same area under this curve.
What these guys really showed is that the area under such a curve is at most the optimal value,
whatever is the optimal objective. Therefore, they got their two approximations. There's one
property of this curve that we will use a lot and let me just give this property at this point. It
won't be clear why this property is important, but we will slowly see how it can be used. A
property of this curve is that it will simply take one of these curves. If we just take the red
curve, for instance, what does the curve depend on? It only depends on the density. If I tell
you the density, then you can draw the red curve. Or if I tell you the density for the blue curve,
you can draw the blue curve. If I draw such a curve and look at the two areas, the area under
the curve and area above the curve, then just simple math shows that the ratio of these two
areas is between two and three and crucially independent of the weight or the densities. This
curve, of course, depends on the density. If the density is higher than the curve is steeper
because the remaining weight drops faster. But irrespective of what the density is and
therefore irrespective of what the actual slope of the curve is, the ratio of these two areas turn
out to be identical. It's about two or three. In fact, what this means is that this also holds
differentially which means that if I start the curve not from zero but from some other point and
draw a little bit of the curve, then again, if I take the two, horizontal and vertical segments and
compare these areas, so that ratio is also exactly 2+1 over alpha -1. We will call it the
differential universality property. This is a property that we will need in the rest of the talk. At
this point this is just a property of a particular differential function. Let's go back to the uniform
density case. Ultimately, we will look at arbitrary density as jobs having various different
densities, but let's start off by just looking at a situation where every job has the same density.
This is how the clairvoyant algorithm looks. What do we do for the non-clairvoyant algorithm?
Let me simplify even more. Let me say that there is just one job in the system. There is nothing
else. At times I get one job and then I don't get anything more. This is what the clairvoyant
algorithm does. It's just this is good. It's not clear what I should be doing in the non-clairvoyant
case, because note that I do not really know w1 at time zero, so I can't quite simulate this curve
in the non-clairvoyant scenario. Instead, what we do is we flip the curve around. What I can do
is I can simulate this curve in reverse by simply setting my power to be the processed weight
rather than the remaining weight. This is just a mirror image of the curve on the left. But why
is this any good? What was happening in the clairvoyant case. The flow time and the energy
were both equal to the area under the curve. For us we have flipped the curve around, so the
energy still remains the area under the power curve. The energy by definition is the area under
the power curve, and therefore, the energy consumption is the same in the two algorithms.
The problem is with the flow time. But then if I look at any time instant, the process to weight
is the height of the curve, so the remaining weight is the remaining, it's the part above the
curve. Therefore, if I integrate over time, then the flow time, in fact, is the entire area above
the curve rather than under the curve. But our universality property says that these two areas
are not very different. That's exactly what the universality property was saying. If I simply use
the property as is I'll get a comparative ratio for both too. For the single job case, the very
simple single job scenario. Any questions about this one? Sorry. This is not even single density,
single job. No job is being released in the interim. Okay? Let's make the next baby step. Let's
have two jobs. Again, uniform density, the second job is released at time R2. Now life is not so
easy. Ideally, what we would like to do is to flip these curves around and run and algorithm
which basically flips the power curves around. But can we do this? Not quite because we don't
know where to break on the right. In particular, we don't know the remaining weight of the
first job when the second job was released. To know this, I have to process the entire first job,
otherwise, I don't know the weight of the first job, and therefore, I don't know where I should
break that curve and start again. This doesn't quite work. Instead of that, let me try to play
around with these segments on the curve. So what I do is I take out the blue segment. Firstly, I
think of this clairvoyant algorithm as a last in, first out algorithm. Note that all the densities are
equal, so it doesn't really matter which job we are processing. However, for the sake of an
easier explanation, let me just think of this as a last in first out algorithm, which means that the
blue job once it arrives at R2 preempts the red job and that is the one which is being processed,
and then the red job resumes. Let me take the blue job and move its curve to the end. There's
no semantics here. I'm just taking a part of the curve and moving it somewhere. This is the
curve on the left and we'll try to simulate this curve in reverse rather than the original curve.
What do I do? I keep running the first job until it completes, and at this point I want to start my
blue job at this height W1 prime. But what is W1 prime? It only depends on the value of W1.
That's the remaining weight when the second job was released in the clairvoyant algorithm. It
does not depend on the actual weight of the second job. It just depends on the weight of the
first job, so that's something I do know in the non-clairvoyant setting since I have completely
process my first job, the red job. Therefore, I can simulate the blue curve in reverse at the end
of processing the first job. But why is this any good? I did around but I changed things, change
the order and maybe that's messing up with my proof. To see why it's good, let's do a simple
analysis. What are the remaining weights at any point of time in the algorithm in the nonclairvoyant algorithm? Until time R2 the remaining weight is just given by W1 minus the
process weight. At R2 the second job is released and so the remaining weight goes up by W2
and that's how it remains until the end of the first job. Is that clear? Now let me split up the
clairvoyant areas into A and B. This is sort of a natural split. And the non-clairvoyant areas into
A prime which is for the first job, so remember for non-clairvoyant of the clairvoyant area under
the curve as well as above the curve. So that's A prime. And then B prime are the remaining
weights due to the second job and the energy to do the second job. Those two, the vertical and
horizontal segments are B prime. So A prime I can charge to A by just using my universality
property. That was what I was doing for a single job. So charging A prime to A is the same as a
single job. I simply do that. So A prime and A are gone. I somehow need to be able to charge B
primes, the two segments that I've drawn as B prime to B. Let me move the B prime up and
join it with the other segment. And move the B back to its original location. What is B prime?
What is the horizontal segment in B prime? It's in fact this segment, the segment that I call B
extended to the end of the algorithm. These two lengths are exactly equal. It's the total time
minus R2, the release time of the second job. And now what should I be using? I'll just use my
differential universality property now. I want to charge the two segments, the horizontal and
vertical segments to the area under the curve, which is exactly what the differential property
was doing for me. I simply use my differential universality property and charge B prime the B. I
can infer that for two jobs I still have the same ratio, 2+1 over alpha -1. Where is all of this
going? Somehow we have to turn this into a general analysis. Until this point between playing
around with pictures. I can't do that in general. This geometry has to somehow be converted
into an algebraic definition. Let's try to do that. For that we will introduce a new idea that we
call incremental analysis. The idea is that instead of trying to predict what opt is or even what
the final clairvoyant algorithm is doing, we will try to compare ourselves to non-clairvoyant
algorithm with the clairvoyant algorithm on what we call the current instance. And what is the
current instance? It's simply for every job I simply take the weight of the job that I have already
processed. That's all I know in the non-clairvoyant setting. I don't know whether the job has
more weight. I define my current instance with the processed weight of every job. And now
with the current instance there is some optimal clairvoyant algorithm. That's what I want to
compare my non-clairvoyant algorithm to. I want to compare the objectives of the nonclairvoyant and the clairvoyant algorithm for this instance. What does this mean inductively?
How do I maintain this property, this invariant that the non-clairvoyant algorithm can be
charged to clairvoyant for the current instance? When I go from time T to T plus dt my current
instance changes. Since the current instance changes, my clairvoyant algorithm might
completely change from some curve it changes to a very different curve. Somehow I need to
account for that. I need to be able to lower bound that objective, the change in the objective in
the clairvoyant setting, and charge the additional objective that I incur in the non-clairvoyant
setting to that increase in the clairvoyant case. That's the general plan. Is the general plan
okay? Okay. Let's see if this is able to solve our single job case first. What happens when I
change from an instance with weight W to an instance with weight W plus DW in the single job
case is basically, what happens is the T equals zero axis shifts to the left. I had weight W1. I
was tracking my algorithm with power W1 and running on this curve. Now my new weight is
W1 plus DW. Start with W1 plus DW and again I'll follow the same curve. Remember this curve
is only defined by density. It's not dependent on what the actual weights are. It's really just
where you start that is defined by the actual weight that's the extra parts that I'm getting on
the left in the clairvoyant objective. What about the non-clairvoyant objective? I'm getting
exactly the same shape, but on the right now because I flipped the curve. Now I can use my
differential universality property to claim that the two rectangles there, the horizontal and
vertical segments can, in fact, the bounded by just the vertical segment. That's exactly how
differential universality property. You can use differential universality to claim that, in fact, you
are maintaining this invariant that you can charge the non-clairvoyant solution to the
clairvoyant solution. How about two jobs from time zeros to R2 when the second job is
released it is just exactly like a single job. It does nothing different. But at R2 the second job is
released, but nothing really happens to our analysis. Why? Because the non-clairvoyant
algorithm continues to process the first job. Therefore, the current instance has zero wait for
the second job. That hasn't even started processing. It doesn't know any weight. So really,
until the end of processing of the first job in this analysis it's the single job scenario. Now once
I've finished the first job, the second job start getting processed and then you get back to the
section that you had earlier. Basically, this red curve in the clairvoyant algorithm gets shifted to
the right and this blue curve shows up in the middle. And the blue curve also shows up at the
union there, and again, the differential universality property exactly says that the B primes can
be charged often B. This is what we did earlier as well. And this keeps happening. The red
curve keeps getting shifted and the blue curve keeps getting bigger. Then what is the general
algorithm? This is the kind of analysis that we want to do, so what should be our general
algorithm? Firstly, we want to process jobs in first in first out order. If you look at this picture
the red job is completely processed before I even touch the blue job. Clearly I am processing in
the FIFO order in the non-clairvoyant offered. I want to process jobs in FIFO order and how do I
set my instantaneous speed? One way to think of setting the instantaneous speed is that I
want both of these algorithms to end at the same time. I don't want my non-clairvoyant
algorithms to lag behind. Otherwise my analysis will not work. I simply set my speed in a way
such that the non-clairvoyant algorithm doesn't lag behind. It finishes the same volume of job
that the clairvoyant algorithm would have finished and that gives me a unique speed. That's
how I set it and therefore my analysis works. That takes care of the uniform density case and
that's pretty much what I want to talk about today. I'll tell little bit about the arbitrary density
scenario. The difficulty with arbitrary density is that it becomes messy and these figures don't
work anymore, but I'll give you a little bit of intuition as to what goes wrong and how we are
able to fix it. What goes wrong?
>>: [indiscernible]
>> Debmalya Panigrahi: [indiscernible]. What goes wrong? Again, imagine there are two jobs
and the second job is at a much higher density than the first job. The blue job has a higher
density than the red job. When the blue job is released it preempts the red job in the
clairvoyant algorithm. It has the highest density first rule. And then once the blue job
completes you resume the red job. What option does the non-clairvoyant algorithm have?
One option is, again, try to mirror these two red and blue curves as I was doing earlier. What's
wrong with this?
>>: [indiscernible] is larger and it should be [indiscernible]
>> Debmalya Panigrahi: The blue guy has high density and that guy is made to wait from R2
until the end of the first day, the red guy. Okay? This clearly is suboptimal. I won't be able to
charge this additional time that it is waiting. That is bad. It seems like I should we really move
the blue guy up front because it should be processed immediately on release. This is what I
should be doing, but there's a problem with this as well. At this point I don't know enough
about the red guy, about the red job to be running my machine at high speed. I'll end up
running the blue job over a slow part of its curve because I haven't even seen the rest of the red
job. There are these two conflicting pools. One requires the analysis regarding that we should
go in first in first out order, but as [indiscernible] said intuition suggests that really the highest
density job should be processed earlier. The way we resolve it and this is not very unique. This
is sort of the first thing you would think of, is to take the jobs and groups them in densities,
some kind of geometric buffering. Within the same bucket you process jobs in FIFO order, first
in first out order. These are jobs with roughly the same density and across buckets you use the
highest density first rule, so if some job has a much higher density than the current job being
processed it will preempt the current job, but if the densities are close it won't. It's kind of the
natural thing to do. However, this sort of messes up the entire analysis and in fact, it messes up
the definition of instantaneous feed as well. So ideally what we should want to do for setting
instantaneous feed, remember what we were doing earlier? We wanted our non-clairvoyant
algorithm to finish as soon as the clairvoyant algorithm finishes, so we don't want a nonclairvoyant algorithm to lag behind. It turns out here we need a little more because we fear
exactly finishing at the same time is the clairvoyant algorithm there are instances that you can
construct where the diversity will force you to lag behind at some point. In fact, the clairvoyant
needs to have an advantage over the non-clairvoyant algorithm in this case. In particular, we
want the completion time of the clairvoyant algorithm to a constant times more than the
current time which is the completion time of the non-clairvoyant algorithm on the current
instance. By definition, non-clairvoyant algorithm completes the current instance at the
current time, but clairvoyant we wanted to be slower, so we want to run our machines at faster
speed. One way of ensuring this is to say that I'll make sure that at the current time, if I
simulated the clairvoyant algorithm, for every job it would have had a constant fraction of the
job still left to process. That would have ensured that the clairvoyant algorithm let's say would
run for double the time. As it turns out this is not an invariant we can win for every job, but we
can sort of maintain this on average, so we can do some kind of amortized analysis and while
this is not true for every job we can show that if this is true for most jobs or if this is true on
average, even that is sufficient for the final ratio that we want. I don't want to go into details of
this. Let me just state that the competitive ratio that you get for non-uniform density is is a sub
constant where the dependence is not good on alpha. Remember, alpha was somewhere
around two or three so this is not too bad but from a technical perspective we are not sure the
dependence should be exponential or whether you can probably get better dependence. Let
me and by mentioning a few open questions. The first one is not really an open question, but
while the analysis for the uniform density case we saw can get pictorially represented. It's
pretty easy. You can do it in a page or two, the proof of the non-uniform density case actually
takes about 40 pages, 30 or 40 pages. There is something we are not doing right there. There
is probably a much simpler proof there or maybe a different algorithm. Our dependence on
alpha is not great in the non-uniform case. It's about 2 to the alpha which might be improved.
It might be possible to improve. And what's probably the most interesting thing here is can we
use this notion of incremental analysis somehow? Is there something new in terms of the
available techniques in online algorithms? Typically, online algorithms don't work with
changing instances. It's just one instance that they think about. Maybe this is useful as well.
Thank you. [applause]. Questions?
>>: If you can go back to, the next one. What is the dependence on alpha?
>> Debmalya Panigrahi: What is the dependence on alpha? 2 to the alpha?
>>: I think the basis [indiscernible]
>>: [indiscernible]
>>: [indiscernible]
>>: It could be [indiscernible]
>> Debmalya Panigrahi: It's possible that you could get a alpha squared or something. In fact
with a clairvoyant setting even some more general scenarios get polynomial alpha.
>>: With a single machine?
>> Debmalya Panigrahi: A single machine is two, but for more general settings [indiscernible]
>>: [indiscernible]
>>: Do you know any lower bounds?
>> Debmalya Panigrahi: Not that I'm aware of, no. Some are suggesting that it's harder than
clairvoyant. I think the clairvoyant case might have…
>>: As alpha changes [indiscernible] to alpha?
>> Debmalya Panigrahi: For the clairvoyant, yes.
>>: Clairvoyant is 2 [indiscernible] alpha?
>> Debmalya Panigrahi: Yes.
>>: But for the non-clairvoyant case, it's alpha [indiscernible]?
>> Debmalya Panigrahi: Yeah, we are not sure.
>>: In fact, the ratio for uniform density improves as alpha increases. It actually approaches
two if you have a large alpha.
>> Debmalya Panigrahi: The improvement is not significant. It goes from three to two.
>>: [multiple speakers] [indiscernible]
>>: For the…
>>: [indiscernible] for alpha -1.
>>: [indiscernible]
>>: Only for the non-clairvoyant [indiscernible].
>> Debmalya Panigrahi: The other one does not have a dependence alpha.
>>: But having [indiscernible]
>>: It goes from 3 to 2.
>>: Yes but in this case [indiscernible] the your saying it could be. It could be three.
>>: [indiscernible] lower bounds.
>> Nikhil Devanur Rangarajan: All right. It's time to the end. [applause]
Download