|
ABSTRACT
Threads are the vehicle for concurrency in many approaches to parallel programming. Threads can be supported either by the operating system kernel or by user-level library code in the application address space, but neither approach has been fully satisfactory.
This paper addresses this dilemma. First, we argue that the performance of kernel threads is inherently worse than that of user-level threads, rather than this being an artifact of existing implementations; managing parallelism at the user level is essential to high-performance parallel computing. Next, we argue that the problems encountered in integrating user-level threads with other system services is a consequence of the lack of kernel support for user-level threads provided by contemporary multiprocessor operating systems; kernel threads are the wrong abstraction on which to support user-level management of parallelism. Finally, we describe the design, implementation, and performance of a new kernel interface and user-level thread package that together provide the same functionality as kernel threads without compromising the performance and flexibility advantages of user-level management of parallelism.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
|
| |
3
|
BARNES, J., AND HUT, P. A hierarchical O(N log N) force-calculation algorithm. Nature 324 (1986), 446-449.
|
 |
4
|
A. Birrell , J. Guttag , J. Horning , R. Levin, Synchronization primitives for a multiprocessor: a formal specification, Proceedings of the eleventh ACM Symposium on Operating systems principles, p.94-102, November 08-11, 1987, Austin, Texas, United States
|
| |
5
|
|
 |
6
|
|
 |
7
|
|
| |
8
|
DRAVES, R., AND COOPER, E. C Threads. Tech. Rep. CMU-CS-88-154, School of Computer Science, Carnegie Mellon Umv., June 1988.
|
| |
9
|
EDLER, J., LIPKIS, J., AND SCHONBERG, E Process management for highly parallel UNIX systems. In Proceedings of the USEN{X Workshop on UNIX and Supercomputers (Sept. 1988), pp. 1-17.
|
| |
9A
|
|
 |
10
|
|
 |
11
|
|
 |
12
|
Anna R. Karlin , Kai Li , Mark S. Manasse , Susan Owicki, Empirical studies of competitve spinning for a shared-memory multiprocessor, Proceedings of the thirteenth ACM symposium on Operating systems principles, p.41-55, October 13-16, 1991, Pacific Grove, California, United States
|
 |
13
|
|
| |
14
|
Lo, S.-P., AND GL~GOR, V. A comparative analysis of multiprocessor scheduling algorithms. In Proceedings of the 7th International Conference on Distributed Computing Systems (Sept. 1987), pp 356~363.
|
 |
15
|
Brian D. Marsh , Michael L. Scott , Thomas J. LeBlanc , Evangelos P. Markatos, First-class user-level threads, Proceedings of the thirteenth ACM symposium on Operating systems principles, p.110-121, October 13-16, 1991, Pacific Grove, California, United States
|
| |
16
|
MOELLER-N~ELSEN, P., AND STAUNSTRUP, J. Problem-heap: A paradigm for multiprocessor algorithms. Parallel Comput. 4, I (Feb. 1987), 63-74.
|
| |
17
|
|
 |
18
|
|
 |
19
|
|
 |
20
|
M. L. Scott , T. J. LeBlanc , B. D. Marsh, Multi-model parallel programming in psyche, Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming, p.70-78, March 14-16, 1990, Seattle, Washington, United States
|
| |
21
|
TEVANIAN, A., RASHID, R., GOLUB, D., BLACK, D., CooPER, E., AND YOUNG, M. Mach Threads and the Unix Kernel: The battle for control. In Proceedings of the 1987 USENIX Summer Conference (1987), pp. 185-197.
|
| |
22
|
|
 |
23
|
|
| |
24
|
|
 |
25
|
|
| |
26
|
WULF, W., LEVIN, R., AND HARmSON, S. Hydra/C. mmp: An Experimental Computer System. McGraw-Hill, New York, 1981.
|
 |
27
|
|
| |
28
|
|
CITED BY 70
|
|
B. N. Bershad , S. Savage , P. Pardyak , E. G. Sirer , M. E. Fiuczynski , D. Becker , C. Chambers , S. Eggers, Extensibility safety and performance in the SPIN operating system, ACM SIGOPS Operating Systems Review, v.29 n.5, p.267-283, Dec. 3, 1995
|
|
|
|
|
|
Gregor Kiczales , John Lamping , Christina Videira Lopes , Chris Maeda , Anurag Mendhekar , Gail Murphy, Open implementation design guidelines, Proceedings of the 19th international conference on Software engineering, p.481-490, May 17-23, 1997, Boston, Massachusetts, United States
|
|
|
|
|
|
C. Pu , T. Autrey , A. Black , C. Consel , C. Cowan , J. Inouye , L. Kethana , J. Walpole , K. Zhang, Optimistic incremental specialization: streamlining a commercial operating system, ACM SIGOPS Operating Systems Review, v.29 n.5, p.314-321, Dec. 3, 1995
|
|
|
|
|
|
H. Assenmacher , T. Breitbach , P. Buhler , V. Hübsch , H. Peine , R. Schwarz, Meeting the application in user space, Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs, September 12-14, 1994, Wadern, Germany
|
|
|
Paul Dourish , W. Keith Edwards , Jon Howell , Anthony LaMarca , John Lamping , Karin Petersen , Michael Salisbury , Doug Terry , Jim Thornton, A programming model for active documents, Proceedings of the 13th annual ACM symposium on User interface software and technology, p.41-50, November 06-08, 2000, San Diego, California, United States
|
|
|
|
|
|
Bryan Ford , Mike Hibler , Jay Lepreau , Roland McGrath , Patrick Tullmann, Interface and execution models in the Fluke kernel, Proceedings of the third symposium on Operating systems design and implementation, p.101-115, February 1999, New Orleans, Louisiana, United States
|
|
|
|
|
|
Kai Shen , Hong Tang , Tao Yang, Adaptive two-level thread management for fast MPI execution on shared memory machines, Proceedings of the 1999 ACM/IEEE conference on Supercomputing (CDROM), p.49-es, November 14-19, 1999, Portland, Oregon, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Brian N. Bershad , Craig Chambers , Susan Eggers , Chris Maeda , Dylan McNamee , Przemyslaw Pardyak , Stefan Savage , Emin Gün Sirer, SPIN: an extensible microkernel for application-specific operating system services, Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs, September 12-14, 1994, Wadern, Germany
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rob von Behren , Jeremy Condit , Feng Zhou , George C. Necula , Eric Brewer, Capriccio: scalable threads for internet services, Proceedings of the nineteenth ACM symposium on Operating systems principles, October 19-22, 2003, Bolton Landing, NY, USA
|
|
|
|
|
|
Pei Cao , Edward W. Felten , Anna R. Karlin , Kai Li, Implementation and performance of integrated application-controlled file caching, prefetching, and disk scheduling, ACM Transactions on Computer Systems (TOCS), v.14 n.4, p.311-343, Nov. 1996
|
|
|
|
|
|
Peter A. Buhr , Martin Karsten , Jun Shih, KDB: a multi-threaded debugger for multi-threaded applications, Proceedings of the SIGMETRICS symposium on Parallel and distributed tools, p.80-87, May 22-23, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yvonne Coady , Gregor Kiczales , Joon Suan Ong , Andrew Warfield , Michael Feeley, Brittle systems will break - not bend: can aspect-oriented programming help?, Proceedings of the 10th workshop on ACM SIGOPS European workshop: beyond the PC, July 01-01, 2002, Saint-Emilion, France
|
|
|
|
|
|
|
|
|
|
|
|
Philip Levis , Sam Madden , David Gay , Joseph Polastre , Robert Szewczyk , Alec Woo , Eric Brewer , David Culler, The emergence of networking abstractions and techniques in TinyOS, Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation, p.1-1, March 29-31, 2004, San Francisco, California
|
|
|
|
|
|
Khaled Elmeleegy , Anupam Chanda , Alan L. Cox , Willy Zwaenepoel, Lazy asynchronous I/O for event-driven servers, Proceedings of the USENIX Annual Technical Conference 2004 on USENIX Annual Technical Conference, p.21-21, June 27-July 02, 2004, Boston, MA
|
|
|
Bratin Saha , Ali-Reza Adl-Tabatabai , Anwar Ghuloum , Mohan Rajagopalan , Richard L. Hudson , Leaf Petersen , Vijay Menon , Brian Murphy , Tatiana Shpeisman , Eric Sprangle , Anwar Rohillah , Doug Carmean , Jesse Fang, Enabling scalability and performance in a large scale CMP environment, ACM SIGOPS Operating Systems Review, v.41 n.3, June 2007
|
|
|
|
|
|
|
|
|
Volkmar Uhlig , Joshua LeVasseur , Espen Skoglund , Uwe Dannowski, Towards scalable multiprocessor virtual machines, Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium, p.4-4, May 06-07, 2004, San Jose, California
|
|
|
|
|
|
|
|
|
Matthew Fluet , Mike Rainey , John Reppy , Adam Shaw , Yingqi Xiao, Manticore: a heterogeneous parallel language, Proceedings of the 2007 workshop on Declarative aspects of multicore programming, p.37-44, January 16-16, 2007, Nice, France
|
|
|
|
|
|
Brian N. Bershad , Craig Chambers , Susan Eggers , Chris Maeda , Dylan McNamee , Przemysław Pardyak , Stefan Savage , Emin Gün Sirer, SPIN—an extensible microkernel for application-specific operating system services, ACM SIGOPS Operating Systems Review, v.29 n.1, p.74-77, Jan. 1995
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Andrew Baumann , Paul Barham , Pierre-Evariste Dagand , Tim Harris , Rebecca Isaacs , Simon Peter , Timothy Roscoe , Adrian Schüpbach , Akhilesh Singhania, The multikernel: a new OS architecture for scalable multicore systems, Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles, October 11-14, 2009, Big Sky, Montana, USA
|
|
|
|
REVIEW
"Teodor Rus : Reviewer"
Managing parallelism at the user level is essential to
high-performance parallel computing on multiprocessor systems. The
operating systems of most high-performance computer systems in use
today, however, have been developed to handle parallel
more...
|