IP Library Granted Patent US 10,776,151
Granted Patent B2
US 10,776,151 · App. 16/292,502 · Granted Sep 15, 2020

Adaptive CPU NUMA scheduling

Inventors: Seongbeom Kim (Sunnyvale, CA); Haoqiang Zheng (Cupertino, CA); Rajesh Venkatasubramanian (San Jose, CA); Puneet Zaroo (Santa Clara, CA)
Assignee: VMWARE, INC.
G06F9/45558G06F9/45554G06F9/48G06F9/5033G06F2009/4557G06F2009/45583
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 10,776,151
App. No.
16/292,502
Granted
Sep 15, 2020
Kind
B2
Abstract

Systems and methods for performing selection of non-uniform memory access (NUMA) nodes for mapping of virtual central processing unit (vCPU) operations to physical processors are provided. A CPU scheduler evaluates the latency between various candidate processors and the memory associated with the vCPU, and the size of the working set of the associated memory, and the vCPU scheduler selects an optimal processor for execution of a vCPU based on the expected memory access latency and the characteristics of the vCPU and the processors. The systems and methods further provide for monitoring system characteristics and rescheduling the vCPUs when other placements provide improved performance and efficiency.

Claims (50)

1. A system for assigning processes in non-uniform memory access (NUMA) systems, the system comprising:

a computing device;

a NUMA system implemented within the computing device, the NUMA system comprising a plurality of NUMA nodes, and each NUMA node of the plurality of NUMA nodes comprising a processor and a memory; and

an application executed by the computing device causing the computing device to at least:

determine a working set size associated with a process;

for each NUMA node,

determine a memory access cost value based on the working set size, an inter-node memory access latency, and an intra-node memory access latency; and

determine a central processing unit (CPU) cost value for a plurality of destination CPUs;

determine a migration suitability metric based on the CPU cost value and the memory access cost value for each NUMA node;

select a particular NUMA node of the plurality of NUMA nodes according to the migration suitability metric; and

assign the process to a destination CPU of the particular NUMA node.

2. The system of claim 1 , wherein the working set size corresponds to a location of memory and an amount of memory associated with the process.

3. The system of claim 2 , wherein the location of memory comprises at least two NUMA nodes of the plurality of NUMA nodes.

4. The system of claim 3 , wherein determining the migration suitability metric further comprises:

assigning a first weighting factor to the CPU cost value for each NUMA node; and

assigning a second weighting factor to the memory access cost value for each NUMA node.

5. The system of claim 4 , wherein the first weighting factor is based on at least one of: a frequency of memory accesses by the process, a frequency of a cache miss by the process, a topography, or a user defined characteristic.

6. The system of claim 4 , wherein, when executed, the application further causes the computing device to at least periodically update the inter-node memory access latency for each NUMA node.

7. The system of claim 1 , wherein determining the CPU cost value comprises accessing the CPU cost value from a memory area of the computing device.

8. A method assigning processes in non-uniform memory access (NUMA) systems, the method comprising:

determining, in a computing device, a working set size associated with a process;

for each NUMA node of a plurality of NUMA nodes in a NUMA system,

determining, in the computing device, a memory access cost value based on the working set size, an inter-node memory access latency, and an intra-node memory access latency; and

determining, in the computing device, a central processing unit (CPU) cost value for a plurality of destination CPUs;

determining, in the computing device, a migration suitability metric based on the CPU cost value and the memory access cost value for each NUMA node;

selecting, by the computing device, a particular NUMA node of the plurality of NUMA nodes according to the migration suitability metric; and

assigning, by the computing device, the process to a destination CPU of the particular NUMA node.

9. The method of claim 8 , wherein the working set size corresponds to a location of memory and an amount of memory associated with the process.

10. The method of claim 9 , wherein the location of memory comprises at least two NUMA nodes.

11. The method of claim 8 , wherein determining the migration suitability metric further comprises:

assigning a first weighting factor to the CPU cost value for each NUMA node; and

assigning a second weighting factor to the memory access cost value for each NUMA node.

12. The method of claim 11 , wherein the first weighting factor is based on at least one of: a frequency of memory accesses by the process, a frequency of a cache miss by the process, a topography, or a user defined characteristic.

13. The method of claim 8 , further comprising periodically updating the inter-node memory access latency for each NUMA node.

14. The method of claim 8 , wherein determining the CPU cost value comprises accessing the CPU cost value from a memory area of the computing device.

15. A non-transitory computer-readable medium comprising a program for assigning processes in non-uniform memory access (NUMA) systems, the program executed in a computing device causing the computing device to at least:

determine a working set size associated with a process;

for each NUMA node of a plurality of NUMA nodes in a NUMA system implemented within the computing device,

determine a memory access cost value based on the working set size, an inter-node memory access latency, and an intra-node memory access latency; and

determine a central processing unit (CPU) cost value for a plurality of destination CPUs;

determine a migration suitability metric based on the CPU cost value and the memory access cost value for each NUMA node;

select a particular NUMA node of the plurality of NUMA nodes according to the migration suitability metric; and

assign the process to a destination CPU of the particular NUMA node.

16. The non-transitory computer-readable medium of claim 15 , wherein the working set size corresponds to a location of memory and an amount of memory associated with the process.

17. The non-transitory computer-readable medium of claim 16 , wherein the location of memory comprises at least two NUMA nodes.

18. The non-transitory computer-readable medium of claim 15 , wherein determining the migration suitability metric further comprises:

assigning a first weighting factor to the CPU cost value for each NUMA node; and

assigning a second weighting factor to the memory access cost value for each NUMA node.

19. The non-transitory computer-readable medium of claim 18 , wherein the first weighting factor is based on at least one of: a frequency of memory accesses by the process, a frequency of a cache miss by the process, a topography, or a user defined characteristic.

20. The non-transitory computer-readable medium of claim 15 , wherein, when executed, the program further causes the computing device to periodically update the inter-node memory access latency for each NUMA node.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (2)
Continuation 14492051 · Sep 21, 2014
Related Publication 20190205155A1 · Jul 4, 2019
Cited By (2)
US 12,393,439 US 12,591,445