Scheduling optimizations for user-level threads
First Claim
1. A method comprising:
- recording dependence information for a plurality of user-level threads of a software program; and
utilizing the dependence information to perform scheduling for the user-level threads, wherein said scheduling for said user-level threads is performed by a scheduler that resides in user space;
wherein said scheduler is to schedule said user-level threads for execution without intervention of an operating system.
1 Assignment
0 Petitions
Accused Products
Abstract
Method, apparatus and system embodiments to schedule user-level OS-independent “shreds” without intervention of an operating system. For at least one embodiment, the shred is scheduled for execution by a scheduler routine rather than the operating system. The scheduler routine resides in user space and may be part of a runtime library. The library may also include monitoring logic that monitors execution of a shredded program and provides scheduling hints, based on shred dependence information, to the scheduler. In addition, the scheduler may further optimize shred scheduling by taking into account information about a system'"'"'s configuration of thread execution hardware. Other embodiments are also described and claimed.
83 Citations
33 Claims
-
1. A method comprising:
-
recording dependence information for a plurality of user-level threads of a software program; and
utilizing the dependence information to perform scheduling for the user-level threads, wherein said scheduling for said user-level threads is performed by a scheduler that resides in user space;
wherein said scheduler is to schedule said user-level threads for execution without intervention of an operating system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system, comprising:
-
a first thread execution unit;
a second thread execution unit; and
scheduler logic to schedule a first user-level thread for execution on said first thread execution unit and to schedule a second user-level thread for concurrent execution on said second execution unit;
wherein said scheduler is to perform said scheduling based on dependence information about said first and second user-level threads and is further to perform said scheduling without intervention of an operating system. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A multi-sequencer multithreading system comprising:
-
a memory system;
a first sequencer;
a second sequencer coupled to said first sequencer and to said memory system; and
scheduling logic, stored in user space of the memory system, the scheduling logic including one or more instructions to concurrently schedule one or more user-level threads associated with a single application image, wherein said concurrent scheduling is based on feedback about dependencies among user-level threads. - View Dependent Claims (20, 21, 22)
-
-
23. An article comprising a machine-accessible medium having a plurality of machine accessible instructions, wherein, when the instructions are executed by a processor, the instructions cause the processor to perform a method, comprising:
-
recording dependence information for a plurality of user-level threads of a software program; and
utilizing the dependence information to perform scheduling for the user-level threads, wherein said scheduling for said user-level threads is performed by a scheduler routine;
wherein said scheduler routine is to schedule said user-level threads for execution without intervention of an operating system. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification