Skip to main content
Log in

Thread Scheduling for Multiprogrammed Multiprocessors

  • Published:
Theory of Computing Systems Aims and scope Submit manuscript

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 this level, 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 T 1 and critical-path length T fty , and for any number P of processes, our scheduler executes the computation in expected time O(T 1 /P A + T fty P/P A ) , where P A is the average number of processors allocated to the computation by the kernel. This time bound is optimal to within a constant factor, and achieves linear speedup whenever P is small relative to the parallelism T 1 /T fty .

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Author information

Authors and Affiliations

Authors

Additional information

Online publication February 26, 2001.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Arora, N., Blumofe, R. & Plaxton, C. Thread Scheduling for Multiprogrammed Multiprocessors . Theory Comput. Systems 34, 115–144 (2001). https://doi.org/10.1007/s00224-001-0004-z

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00224-001-0004-z

Navigation