Information Technology Reference
In-Depth Information
of parallel programs as a function of the number of processors. While some
applications have perfect speedup and can make ecient use of many processors,
other applications reach a point of diminishing returns, and still others have a
maximum parallelism.
An implication of Figure 7.10 is that it is more usually more ecient to run
two parallel programs each with half the number of processors, than to time
slice the two programs, each co-scheduled onto all of the processors. Since the
number of available processors is a dynamic property in a multiprogrammed
setting, how does the application know how many processors to use?
Scheduler activations
A solution, recently added to Windows, is to make the assignment and re-
assignment of processors to applications visible to applications. Applications are
given an execution context, or scheduler activation, on each processor assigned
Definition: scheduler
activation
to the application; the application is informed explicitly, via an upcall, whenever
a processor is added to its allocation or taken away. Blocking on an I/O request
also causes an upcall to allow the application to repurpose the processor while
the thread is waiting for I/O.
As we noted in an earlier chapter, user-level thread management is possible
with scheduler activations. The operating system kernel assigns processors to
applications, either evenly or according to some priority weighting. Each appli-
cation then schedules its user-level threads onto the processors assigned to it,
changing its allocation as the number of processors varies due to external events.
If no other application is running, an application can use all of the processors of
the machine; with more contention, the application must remap its work onto
a smaller number of processors.
7.3
Energy-aware scheduling
Naively, have a certain amount of computation to do, not much difference if we
are battery constrained or not. We can put off background tasks, but its likely
that's not all that signicant.
Turns out that modern architectures have a number of ways of trading per-
formance for power consumption.
Slow down CPU to make it more ecient. Turn off processors that are not
being used, or not being used much Disable memory that is not being used.
How do we know if these are worthwhile things to do?
Response time as a function of resources { diminishing returns
Value as a function of response time { S curve
 
Search WWH ::




Custom Search