I would like to give a short talk about some systems issues that are often overlooked in discussions about using multi-core processors. When thinking about desktop workloads machines vary massively in the resources devoted to a given application, either because of hardware differences, or because many applications and services are running concurrently on the same machine. The challenge is not just designing programming models that enable applications to run effectively across different levels of hardware parallelism, but also arbitrating the conflicting requirements of concurrent applications -- e.g. I do not want my spare CPU time used to run a disk indexing workload when the disk is already saturated. I would rather that some cores be left idle if that processor's memory bus is already saturated. If two non-time-critical background tasks can each fill all of memory then let us run them in series rather than parallel. What can we do to deal with these kinds of resource management problems?