Non-intrusive Coscheduling for General Purpose Operating Systems
Coscheduling, invented originally on early parallel computer systems 30 years ago, provided the possibility to improve the resource utilization of these systems substantially by coordinating the execution of processes across multiple processors in time. Almost forgotten in the multicore era, recent research addressing certain problems on multicore systems, such as performance of virtual machines, contention of processor resources, or dynamic energy budget distribution, concludes that coscheduling is a viable solution.
In this paper, we do not focus on a specific problem or application of coscheduling, but on coscheduling itself. We present a coscheduling design that is able to cover most of the identified use cases on multicore systems and can be seamlessly integrated into currently used general purpose operating systems. We have applied this design to the Linux kernel and show that this approach allows a non-intrusive solution that fulfills the promises of coscheduling and is able to achieve a similar performance as a specialized commercial solution.
KeywordsVirtual Machine Task Group Processor Core Multicore System Baseline Experiment
Unable to display preview. Download preview PDF.
- 1.Ousterhout, J.: Scheduling techniques for concurrent systems. In: Proceedings of the 3rd International Conference on Distributed Computing Systems (ICDCS 1982), pp. 22–30. IEEE Computer Society, Los Alamitos (1982)Google Scholar
- 3.Mattson, T.G., Sanders, B.A., Massingill, B.L.: Patterns for parallel programming. Addison-Wesley (2004)Google Scholar
- 5.Kim, D., et al.: Physical experimentation with prefetching helper threads on Intel’s hyper-threaded processors. In: Proceedings of the International Symposium on Code Generation and Optimization (CGO 2004), pp. 27–38. IEEE Computer Society, Los Alamitos (2004)Google Scholar
- 6.Bulpin, J.R.: Operating system support for simultaneous multithreaded processors. University of Cambridge, Computer Laboratory, Cambridge, UK, Tech. Rep. UCAM-CL-TR-619 (February 2005)Google Scholar
- 7.Datta, K., et al.: Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures. In: Proceedings of the 2008 ACM/IEEE Conference on Supercomputing (SC 2008). IEEE, Piscataway (2008)Google Scholar
- 9.Schönherr, J.H., Richling, J., Werner, M., Mühl, G.: A scheduling approach for efficient utilization of hardware-driven frequency scaling. In: Workshop Proceedings of the 23rd International Conference on Architecture of Computing Systems (ARCS 2010), pp. 367–376. VDE Verlag, Berlin (2010)Google Scholar
- 12.VMware, Inc., VMware vSphere: The CPU Scheduler in VMware ESX 4.1, white paper (2010)Google Scholar
- 13.Giani, D., Vaddagiri, S., Zijlstra, P.: The Linux scheduler, today and looking forward. UpTimes 2008(2), 41–52 (2008)Google Scholar
- 14.Jin, H., Frumkin, M., Yan, J.: The OpenMP implementation of NAS parallel benchmarks and its performance. NASA Ames Research Center, Moffett Field, CA, USA, Tech. Rep. NAS-99-011 (October 1999)Google Scholar