Lightweight preemptive user-level threads

作者: Kenjiro Taura , Pavan Balaji , Shumpei Shiina , Shintaro Iwasaki

DOI: 10.1145/3437801.3441610

关键词: DeadlockComputer scienceScheduling (computing)Context switchParallel computingPreemptionKernel (linear algebra)MultithreadingPOSIX ThreadsUser space

摘要: Many-to-many mapping models for user- to kernel-level threads (or "M:N threads") have been extensively studied decades as a lightweight substitute current Pthreads implementations that provide simple one-to-one ("1:1 threads"). M:N derive performance from their ability allow users context switch between and control scheduling entirely in user space with no kernel involvement. This same ability, however, causes lose the kernel-provided of implicit OS preemption---threads explicitly yield other be scheduled. Hence, programs over nonpreemptive can cause core starvation, loss prioritization, and, sometimes, deadlock unless are written proper places. paper explores two techniques efficiently achieve preemption similar 1:1 threads: signal-yield KLT-switching. Overheads these techniques, our optimizations, less than 1% compared threads. Our evaluation three applications demonstrates improve utilization enhance by utilizing switching flexible

参考文章(48)
Yoshizumi Tanaka, Kenjiro Taura, Mitsuhisa Sato, Akinori Yonezawa, Performance Evaluation of OpenMP Applications with Nested Parallelism Lecture Notes in Computer Science. pp. 100- 112 ,(2000) , 10.1007/3-540-40889-4_8
Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, Henry M. Levy, Scheduler activations ACM Transactions on Computer Systems. ,vol. 10, pp. 53- 79 ,(1992) , 10.1145/146941.146944
Malcolm S. Mollison, James H. Anderson, Bringing theory into practice: A userspace library for multicore real-time scheduling real time technology and applications symposium. pp. 283- 292 ,(2013) , 10.1109/RTAS.2013.6531100
H. Carter Edwards, Christian R. Trott, Kokkos: Enabling Performance Portability Across Manycore Architectures 2013 Extreme Scaling Workshop (xsw 2013). pp. 18- 24 ,(2013) , 10.1109/XSW.2013.7
Brian D. Marsh, Michael L. Scott, Thomas J. LeBlanc, Evangelos P. Markatos, First-class user-level threads symposium on operating systems principles. ,vol. 25, pp. 110- 121 ,(1991) , 10.1145/121132.344329
Xinmin Tian, Jay P. Hoeflinger, Grant Haab, Yen-Kuang Chen, Milind Girkar, Sanjiv Shah, A compiler for exploiting nested parallelism in OpenMP programs parallel computing. ,vol. 31, pp. 960- 983 ,(2005) , 10.1016/J.PARCO.2005.03.007
Robert D. Blumofe, Charles E. Leiserson, Scheduling multithreaded computations by work stealing Journal of the ACM. ,vol. 46, pp. 720- 748 ,(1999) , 10.1145/324133.324234
Christopher T. Haynes, Daniel P. Friedman, Abstracting timed preemption with engines Computer Languages. ,vol. 12, pp. 109- 121 ,(1987) , 10.1016/0096-0551(87)90003-8
Steve Plimpton, Fast parallel algorithms for short-range molecular dynamics Journal of Computational Physics. ,vol. 117, pp. 1- 19 ,(1995) , 10.1006/JCPH.1995.1039