| Abstract Thread Scheduling for Multiprogrammed Multiprocessors (2008) | |||||||||||||||
Abstract | |||||||||||||||
| We present a user-level thread scheduler for shared-memory multiprocessors, and we analyze its performance under multiprogramming. We model multiprogramming with two scheduling levels: our scheduler runs at user-level and schedules threads onto a fixed collection of processes, while below, the operating-system kernel schedules processes onto a fixed collection of processors. We consider the kernel to be an adversary, and our goal is to schedule threads onto processes such that we make efficient use of whatever processor resources are provided by the kernel. Our thread scheduler is a non-blocking implementation of the work-stealing algorithm. For any multithreaded computation with �� � work and critical-path �� � length, and for any � number of processes, our scheduler executes the computation in expected ��� time cessors allocated to the computation by the kernel. This time bound is optimal to within a constant factor, and achieves linear speedup whenever � is small relative to the average parallelism �� � � �� �. � �� � ������ � � � � ���� � , where �� � is the average number of pro-1 | |||||||||||||||
Details der Publikation | |||||||||||||||
| |||||||||||||||