IP Library Granted Patent US 8,458,722
Granted Patent B2
US 8,458,722 · App. 12/135,604 · Granted Jun 4, 2013

Thread selection according to predefined power characteristics during context switching on compute nodes

Inventors: Charles J. Archer (Rochester, MN); Michael A. Blocksome (Rochester, MN); Amanda E. Peters (Rochester, MN); Joseph D. Ratterman (Rochester, MN); Brian E. Smith (Rochester, MN)
Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,458,722
App. No.
12/135,604
Granted
Jun 4, 2013
Kind
B2
Abstract

Methods, apparatus, and products are disclosed for thread selection during context switching on a plurality of compute nodes that includes: executing, by a compute node, an application using a plurality of threads of execution, including executing one or more of the threads of execution; selecting, by the compute node from a plurality of available threads of execution for the application, a next thread of execution in dependence upon power characteristics for each of the available threads; determining, by the compute node, whether criteria for a thread context switch are satisfied; and performing, by the compute node, the thread context switch if the criteria for a thread context switch are satisfied, including executing the next thread of execution.

Claims (30)

1. A method of thread selection for context switching on a plurality of compute nodes, the method comprising:

executing, by a compute node of the plurality of compute nodes, an application using a plurality of threads of execution, including executing one or more of the threads of execution;

predefining power characteristics for each of the plurality of threads of execution for the application;

selecting, by the compute node from a plurality of available threads of execution for the application, a next thread of execution in dependence upon power characteristics for each of the available threads by determining a current power mode for the compute node while executing a current thread of the application, and selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode;

determining, by the compute node, whether a criteria for a thread context switch is satisfied; and

performing, by the compute node, the thread context switch if the criteria for a thread context switch are satisfied, including executing the next thread of execution.

2. The method of claim 1 wherein the next thread of execution is a software thread.

3. The method of claim 1 wherein the next thread of execution is a hardware thread in a Symmetric Multi-Processing (‘SMP’) architecture.

4. The method claim 1 wherein selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode further comprises selecting the next thread according to a power mode switching algorithm.

5. The method claim 1 wherein selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode further comprises selecting the next thread according to external operating conditions for the compute node.

6. The method claim 1 wherein the plurality of compute nodes are connected together for data communications using a plurality of data communications networks, at least one of the data communications networks optimized for point to point operations, and at least one of the data communications networks optimized for collective operations.

7. A parallel computer capable of thread selection for context switching on a plurality of compute nodes, the parallel computer comprising the plurality of compute nodes, each of the compute nodes comprising one or more computer processors and computer memory operatively coupled to the computer processors, the computer memory having disposed within it computer program instructions capable of:

executing, by a compute node of the plurality of compute nodes, an application using a plurality of threads of execution, including executing one or more of the threads of execution;

predefining power characteristics of each of the plurality of threads of execution for the application;

selecting, by the compute node from a plurality of available threads of execution for the application, a next thread of execution in dependence upon power characteristics for each of the available threads by determining a current power mode for the compute node while executing a current thread of the application, and selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode;

determining, by the compute node, whether a criteria for a thread context switch is satisfied; and

performing, by the compute node, the thread context switch if the criteria for a thread context switch are satisfied, including executing the next thread of execution.

8. The parallel computer claim 7 wherein selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode further comprises selecting the next thread according to a power mode switching algorithm.

9. The parallel computer claim 7 wherein selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode further comprises selecting the next thread according to external operating conditions for the compute node.

10. A computer program product for thread selection for context switching on a plurality of compute nodes, the computer program product disposed upon a computer readable recordable medium, wherein the computer readable recordable medium is not a signal, the computer program product comprising computer program instructions capable of:

executing, by a compute node of the plurality of compute nodes, an application using a plurality of threads of execution, including executing one or more of the threads of execution;

predefining the power characteristics of each of the plurality of threads of execution for the application;

selecting, by the compute node from a plurality of available threads of execution for the application, a next thread of execution in dependence upon power characteristics for each of the available threads by determining a current power mode for the compute node while executing a current thread of the application, and selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode;

determining, by the compute node, whether a criteria for a thread context switch is satisfied; and

performing, by the compute node, the thread context switch if the criteria for a thread context switch are satisfied, including executing the next thread of execution.

11. The computer program product of claim 10 wherein the next thread of execution is a software thread.

12. The computer program product of claim 10 wherein the next thread of execution is a hardware thread in a Symmetric Multi-Processing (‘SMP’) architecture.

13. The computer program product of claim 10 wherein selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode further comprises selecting the next thread according to a power mode switching algorithm.

14. The computer program product of claim 10 wherein selecting, from the available threads of execution, the next thread of execution having predefined power characteristics that are consistent with the current power mode further comprises selecting the next thread according to external operating conditions for the compute node.

15. The computer program product of claim 10 wherein the plurality of compute nodes are connected together for data communications using a plurality of data communications networks, at least one of the data communications networks optimized for point to point operations, and at least one of the data communications networks optimized for collective operations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2009
From: ARCHER, CHARLES J.; BLOCKSOME, MICHAEL A.; PETERS, AMANDA E.; RATTERMAN, JOSEPH D.; SMITH, BRIAN E.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022594/0010 →
CONFIRMATORY LICENSE Recorded Sep 26, 2008
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: ENERGY, U.S. DEPARTMENT
Reel/Frame 021597/0132 →
Continuity (1)
Related Publication 20090307708A1 · Dec 10, 2009