# US 10,120,727 B2 · Techniques to allocate configurable computing resources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,727 B2
- Document ID: US10120727B2
- Status: Granted
- Kind: B2
- Application number: 15/112,339
- Filed: 2015-02-23
- Published: 2016-12-08
- Granted: 2018-11-06
- Earliest claimed: 0214-02-27
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Katalin K. Bartfai-Walcott; Alexander Leckey; John Kennedy; Chris Woods; Giovani Estrada; Joseph Butler; Michael J. McGrath; Slawomir Putyrski
- Web page: https://patentgrep.com/patent/US10120727B2

## CPC

- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5061: {Partitioning or combining of resources}
- G06F 9/5072: {Grid computing}
- G06F 9/5094: {where the allocation takes into account power or heat criteria (power management in computers in general G06F1/3203; thermal management in computers in general G06F1/206)}
- G06F 2209/501: Performance criteria
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Examples may include techniques for allocating configurable computing resources from a pool of configurable computing resources to a logical server or virtual machine. The logical server or virtual machine may use allocated configurable computing resources to implement, execute or run a workload.

## Claims

### Claim 1

An apparatus comprising:
circuitry for a controller of a system of configurable computing resources;
a request component for execution by the circuitry to receive a request to allocate the configurable computing resources to a logical server to implement or execute a workload;
a score component for execution by the circuitry to generate a first weighted sum allocation score for a first portion of the configurable computing resources available for allocation to the logical server and generate a second weighted sum allocation score for a second portion of the configurable computing resources available for allocation to the logical server, the first and second portions of configurable computing resources including respective first and second configurations each having a plurality of disaggregate physical elements belonging to one or more types, the one or more types including a central processing unit type, a memory type, a storage type or a network input/output type, respective first and second weighted sum allocation scores generated using respective normalized performance values, where the normalized performance values correspond to at least two different respective types of allocation attributes selected from types of an operating temperature, a power/energy consumption, a total uptime in hours or a unit cost, for individual disaggregate physical elements included in the respective first and second configurations, the respective performance values separately multiplied by a plurality of separate weighting factors for the different respective types of allocation attributes for the individual disaggregate physical elements and then summed to generate the respective first and second sum allocation scores;
a rank component for execution by the circuitry to compare the first and second weighted sum allocation scores to rank the first portion relative to the second portion; and
an allocation component for execution by the circuitry to allocate the first portion or the second portion to the logical server based on the rank.

### Claim 2 (depends on 1)

The apparatus of claim 1, the allocation component to update a resource catalogue to indicate allocation of the first or second portions to the logical server.

### Claim 3 (depends on 1)

The apparatus of claim 1, the system of configurable computing resources comprises the configurable computing resources maintained in a plurality of racks.

### Claim 4 (depends on 1)

The apparatus of claim 1, comprising:
the first weighted sum allocation score is s1 and
s
1
=
m
t
⁡
(
t
1
t
ma
⁢
⁢
x
)
+
m
p
⁡
(
e
1
e
ma
⁢
⁢
x
)
+
m
u
⁡
(
u
1
u
ma
⁢
⁢
x
)
+
m
c
⁡
(
c
1
c
ma
⁢
⁢
x
)
,
where “t1” represents the operating temperature allocation attribute for the first portion, “tmax” represents a maximum value for operating temperature for the first portion, “e1” represents the power/energy consumption allocation attribute for the first portion, emax represents a maximum value for power/energy consumption for the first portion, “u1” represents the total uptime in hours allocation attribute for the first portion, umax” represents a maximum value for total uptime for the first portion, “c1” represents the unit cost allocation attribute for the first portion, cmax represents a maximum value for unit cost for the first portion, and “mt, mp, mu, mc” for s1 represent individual weighting factors for different respective types of allocation attributes for the first portion; and
the second weighted sum allocation score is s2 and
s
2
=
m
t
⁡
(
t
2
t
ma
⁢
⁢
x
)
+
m
p
⁡
(
e
2
e
ma
⁢
⁢
x
)
+
m
u
⁡
(
u
2
u
ma
⁢
⁢
x
)
+
m
c
⁡
(
c
2
c
ma
⁢
⁢
x
)
,
where “t2” represents the operating temperature allocation attribute for the second portion, “tmax” represents a maximum value for operating temperature for the second portion, “e2” represents the power/energy consumption allocation attribute for the second portion, emax” represents a maximum value for power/energy consumption for the second portion, “u2” represents the total uptime in hours allocation attribute for the second portion, umax” represents a maximum value for total uptime for the second portion, “c2” represents the unit cost allocation attribute for the second portion, cmax” represents a maximum value for unit cost for the second portion, and “mt, mp, mu, mc” for s2 represent individual weighting factors for different respective types of allocation attributes for the second portion.

### Claim 5 (depends on 4)

The apparatus of claim 4, the plurality of weighting factors for the different respective types of allocation attributes for the individual disaggregate physical elements are based on whether the request indicates that the configurable computing resources are to be allocated based on one of a cost sensitive template, a performance sensitive template, a high availability template or a balanced template.

### Claim 6 (depends on 1)

The apparatus of claim 1, the plurality of weighting factors for the different respective types of allocation attributes, when added together or summed, have a value equal to 1.

### Claim 7 (depends on 5)

The apparatus of claim 5, the cost sensitive template to cause mc for both s1 and s2 to have a highest weighting compared to mt, mp or mu or the performance sensitive and high availability templates to cause mu for both s1 and s2 to have the highest weighting compared to mt, mp or mu.

### Claim 8 (depends on 1)

The apparatus of claim 1, comprising:
the allocation component to allocate the first portion of the configurable computing resources to the logical server to implement or execute the workload;
a monitor component for execution by the circuitry to monitor a plurality of operating attributes for each configurable computing resource included in the first portion as the logical server implements or executes the workload;
the score component to generate a first weighted sum operating score for the first portion based on the plurality of operating attributes monitored by the monitor component;
the rank component to rank the weighted sum operating score compared to one or more historical weighted sum operating scores determined for one or more other portions of the configurable computing resources previously allocated to implement or execute the workload; and
the allocation component to modify what configurable computing resources are included in the first portion based on the rank.

### Claim 9 (depends on 8)

The apparatus of claim 8, the first weighted sum operating score weighted based on a service level agreement for the workload.

### Claim 10 (depends on 8)

The apparatus of claim 8, the first weighted sum operating score is S1(Wj) and
S
1
⁡
(
W
j
)
=
U
1
⁡
(
W
j
)
⁢
M
1
+
P
1
⁡
(
W
j
)
⁢
M
2
+
M
3
C
1
⁡
(
W
j
)
+
M
4
E
1
⁡
(
W
j
)
,
where “j” represents the workload implemented or executed by the logical server, “U1(Wj)” represents a utilization operating attribute for resources included in the first configuration while the logical server implements or executes the workload, “P1(Wj)” represents a performance operating attribute of the first configuration while the logical server implements or executes the workload, “C1(Wj)” represents a cost operating attribute for costs associated with the logical server implementing or executing the workload, “E1(Wj)” represents an energy operating attribute for energy consumption while the logical server implements or executes the workload, and “M1, M2, M3, M4” represent separate multipliers to prioritize respective types of utilization, performance, cost and energy consumption operating attributes.

### Claim 11 (depends on 1)

The apparatus of claim 1, comprising a digital display coupled to the circuitry to present a user interface view.

### Claim 12

A method comprising:
receiving, at a resource manager for a system of configurable computing resources, a request to allocate the configurable computing resources to a logical server to implement or execute a workload;
generating a first weighted sum allocation score for a first portion of the configurable computing resources available for allocation to the logical server;
generating a second weighted sum allocation score for a second portion of the configurable computing resources available for allocation to the logical server, the first and second portions of configurable computing resources including respective first and second configurations each having a plurality of disaggregate physical elements belonging to one or more types, the one or more types including a central processing unit type, a memory type, a storage type or a network input/output type, respective first and second weighted sum allocation scores generated using respective normalized performance values, where the normalized performance values correspond to at least two different respective types of allocation attributes selected from types of an operating temperature, a power/energy consumption, a total uptime in hours or a unit cost, for individual disaggregate physical elements included in the respective first and second configurations, the respective performance values separately multiplied by a plurality of separate weighting factors for the different respective types of allocation attributes for the individual disaggregate physical elements and then summed to generate the respective first and second sum allocation scores;
comparing the first and second weighted sum allocation scores to rank the first portion relative to the second portion; and
allocating the first portion or the second portion to the logical server based on the rank.

### Claim 13 (depends on 12)

The method of claim 12, comprising:
the first weighted sum allocation score is s1 and
s
1
=
m
t
⁡
(
t
1
t
ma
⁢
⁢
x
)
+
m
p
⁡
(
e
1
e
ma
⁢
⁢
x
)
+
m
u
⁡
(
u
1
u
ma
⁢
⁢
x
)
+
m
c
⁡
(
c
1
c
ma
⁢
⁢
x
)
,
where “t1” represents the operating temperature allocation attribute for the first portion, “tmax” represents a maximum value for operating temperature for the first portion, “e1” represents the power/energy consumption allocation attribute for the first portion, emax” represents a maximum value for power/energy consumption for the first portion, “u1” represents the total uptime in hours allocation attribute for the first portion, umax” represents a maximum value for total uptime for the first portion, “c1” represents the unit cost allocation attribute for the first portion, cmax” represents a maximum value for unit cost for the first portion, and “mt, mp, mu, mc” for s1 represent individual weighting factors for different respective types of allocation attributes for the first portion; and
the second weighted sum allocation score is s2 and
s
2
=
m
t
⁡
(
t
2
t
ma
⁢
⁢
x
)
+
m
p
⁡
(
e
2
e
ma
⁢
⁢
x
)
+
m
u
⁡
(
u
2
u
ma
⁢
⁢
x
)
+
m
c
⁡
(
c
2
c
ma
⁢
⁢
x
)
,
where “t2” represents the operating temperature allocation attribute for the second portion, “tmax” represents a maximum value for operating temperature for the second portion, “e2” represents the power/energy consumption allocation attribute for the second portion, emax” represents a maximum value for power/energy consumption for the second portion “u2” represents the total uptime in hours allocation attribute for the second portion, umax” represents a maximum value for total uptime for the second portion, “c2” represents the unit cost allocation attribute for the second portion, cmax represents a maximum value for unit cost for the second portion, and “mt, mp, mu, mc” for s2 represent individual weighting factors for different respective types of allocation attributes for the second portion.

### Claim 14 (depends on 12)

The method of claim 12, comprising:
allocating the first portion of the configurable computing resources to the logical server to implement or execute the workload;
monitoring a plurality of operating attributes for each configurable computing resource included in the first portion as the logical server implements or executes the workload;
generating a first weighted sum operating score for the first portion based on the plurality of monitored operating attributes;
ranking the first weighted sum operating score compared to one or more historical weighted sum operating scores determined for one or more other portions of the configurable computing resources previously allocated to implement or execute the workload; and
modifying what configurable computing resources are included in the first portion based on the ranking.

### Claim 15 (depends on 14)

The method of claim 14, the first weighted sum operating score weighted based on a service level agreement for the workload.

### Claim 16 (depends on 14)

The method of claim 14, the first weighted sum operating score is S1(Wj) and
S
1
⁡
(
W
j
)
=
U
1
⁡
(
W
j
)
⁢
M
1
+
P
1
⁡
(
W
j
)
⁢
M
2
+
M
3
C
1
⁡
(
W
j
)
+
M
4
E
1
⁡
(
W
j
)
,
where “j” represents the workload implemented or executed by the logical server, “U1(Wj)” represents a utilization operating attribute for resources included in the first configuration while the logical server implements or executes the workload, “P1(Wj)” represents a performance operating attribute of the first configuration while the logical server implements or executes the workload, “C1(Wj)” represents a cost operating attribute for costs associated with the logical server implementing or executing the workload, “E1(Wj)” represents an energy operating attribute for energy consumption while the logical server implements or executes the workload, and “M1, M2, M3, M4” represent separate multipliers to prioritize respective types of utilization, performance, cost and energy consumption operating attributes.

### Claim 17

At least one non-transitory machine readable medium comprising a plurality of instructions that in response to being executed by circuitry located with a system of configurable computing resources cause the circuitry to:
receive a request to allocate the configurable computing resources to a logical server to implement or execute a workload;
generate a first weighted sum allocation score for a first portion of the configurable computing resources available for allocation to the logical server;
generate a second weighted sum allocation score for a second portion of the configurable computing resources available for allocation to the logical server, the first and second portions of configurable computing resources including respective first and second configurations each having a plurality of disaggregate physical elements belonging to one or more types, the one or more types including a central processing unit type, a memory type, a storage type or a network input/output type, respective first and second weighted sum allocation scores generated using respective normalized performance values, where the normalized performance values correspond to at least two different respective types of allocation attributes selected from types of an operating temperature, a power/energy consumption, a total uptime in hours or a unit cost, for individual disaggregate physical elements included in the respective first and second configurations, the respective performance values separately multiplied by a plurality of separate weighting factors for the different respective types of allocation attributes for the individual disaggregate physical elements and then summed to generate the respective first and second sum allocation scores;
compare the first and second weighted sum allocation score to rank the first portion relative to the second portion; and
allocate the first portion or the second portion to the logical server based on the rank.

### Claim 18 (depends on 17)

The at least one non-transitory machine readable medium of claim 17, the system of configurable computing resources comprising the configurable computing resources maintained in a plurality of racks.

### Claim 19 (depends on 18)

The at least one non-transitory machine readable medium of claim 18, the instructions to further cause the circuitry to:
allocate the first portion of the configurable computing resources to the logical server to implement or execute the workload;
monitor a plurality of operating attributes for each configurable computing resource included in the first portion as the logical server implements or executes the workload;
generate a first weighted sum operating score for the first portion based on the plurality of monitored operating attributes;
rank the first weighted sum operating score compared to one or more historical weighted sum operating scores determined for one or more other portions of the configurable computing resources previously allocated to implement or execute the workload; and
modify what configurable computing resources are included in the first portion based on the ranking.

### Claim 20 (depends on 19)

The at least one non-transitory machine readable medium of claim 19, the first weighted sum operating score is S1(Wj) and
S
1
⁡
(
W
j
)
=
U
1
⁡
(
W
j
)
⁢
M
1
+
P
1
⁡
(
W
j
)
⁢
M
2
+
M
3
C
1
⁡
(
W
j
)
+
M
4
E
1
⁡
(
W
j
)
,
where “j” represents the workload implemented or executed by the logical server, “U1(Wj)” represents a utilization operating attribute for resources included in the first configuration while the logical server implements or executes the workload, “P1(Wj)” represents a performance operating attribute of the first configuration while the logical server implements or executes the workload, “C1(Wj)” represents a cost operating attribute for costs associated with the logical server implementing or executing the workload, “E1(Wj)” represents an energy operating attribute for energy consumption while the logical server implements or executes the workload, and “M1, M2, M3, M4” represent separate multipliers to prioritize respective types of utilization, performance, cost and energy consumption operating attributes.

### Claim 21 (depends on 17)

The at least one non-transitory machine readable medium of claim 17, comprising:
the first weighted sum allocation score is s1 and
s
1
=
m
t
⁡
(
t
1
t
ma
⁢
⁢
x
)
+
m
p
⁡
(
e
1
e
ma
⁢
⁢
x
)
+
m
u
⁡
(
u
1
u
ma
⁢
⁢
x
)
+
m
c
⁡
(
c
1
c
ma
⁢
⁢
x
)
,
where “t1” represents the operating temperature allocation attribute for the first portion, “tmax” represents a maximum value for operating temperature for the first portion, “e1” represents the power/energy consumption allocation attribute for the first portion, emax represents a maximum value for power/energy consumption for the first portion, “u1” represents the total uptime in hours allocation attribute for the first portion, umax” represents a maximum value for total uptime for the first portion, “c1” represents the unit cost allocation attribute for the first portion, cmax” represents a maximum value for unit cost for the first portion, and “mt, mp, mu, mc” for s1 represent individual weighting factors for different respective types of allocation attributes for the first portion; and
the second weighted sum allocation score is s2 and
s
2
=
m
t
⁡
(
t
2
t
ma
⁢
⁢
x
)
+
m
p
⁡
(
e
2
e
ma
⁢
⁢
x
)
+
m
u
⁡
(
u
2
u
ma
⁢
⁢
x
)
+
m
c
⁡
(
c
2
c
ma
⁢
⁢
x
)
,
where “t2” represents the operating temperature allocation attribute for the second portion, “tmax” represents a maximum value for operating temperature for the second portion, “e2” represents the power/energy consumption allocation attribute for the second portion, emax” represents a maximum value for power/energy consumption for the second portion, “u2” represents the total uptime in hours allocation attribute for the second portion, umax” represents a maximum value for total uptime for the second portion, “c2” represents the unit cost allocation attribute for the second portion, cmax” represents a maximum value for unit cost for the second portion, and “mt, mp, mu, mc” for s2 represent individual weighting factors for different respective types of allocation attributes for the second portion.

### Claim 22 (depends on 21)

The at least one non-transitory machine readable medium of claim 21, the plurality of weighting factors for the different respective types of allocation attributes for the individual disaggregate physical elements are based on whether the request indicates that the configurable computing resources are to be allocated based on one of a cost sensitive template, a performance sensitive template, a high availability template or a balanced template.

### Claim 23 (depends on 17)

The at least one non-transitory machine readable medium of claim 17, the plurality of weighting factors for the different respective types of allocation attributes, when added together or summed, have a value equal to 1.

### Claim 24

An apparatus comprising:
means implemented by circuitry for receiving, at a resource manager for a system of configurable computing resources, a request to allocate the configurable computing resources to a logical server to implement or execute a workload;
means implemented by circuitry for generating a first weighted sum allocation score for a first portion of the configurable computing resources available for allocation to the logical server;
means implemented by circuitry for generating a second weighted sum allocation score for a second portion of the configurable computing resources available for allocation to the logical server, the first and second portions of configurable computing resources including respective first and second configurations each having a plurality of disaggregate physical elements belonging to one or more types, the one or more types including a central processing unit type, a memory type, a storage type or a network input/output type, respective first and second weighted sum allocation scores generated using respective normalized performance values, where the normalized performance values correspond to at least two different respective types of allocation attributes selected from types of an operating temperature, a power/energy consumption, a total uptime in hours or a unit cost, for individual disaggregate physical elements included in the respective first and second configurations, the respective performance values separately multiplied by a plurality of separate weighting factors for the different respective types of allocation attributes for the individual disaggregate physical elements and then summed to generate the respective first and second sum allocation scores;
means implemented by circuitry for comparing the first and second weighted sum allocation scores to rank the first portion relative to the second portion; and
means implemented by circuitry for allocating the first portion or the second portion to the logical server based on the rank.

### Claim 25 (depends on 24)

The apparatus of claim 24, comprising:
means implemented by circuitry for allocating the first portion of the configurable computing resources to the logical server to implement or execute the workload;
means implemented by circuitry for monitoring a plurality of operating attributes for each configurable computing resource included in the first portion as the logical server implements or executes the workload;
means implemented by circuitry for generating a first weighted sum operating score for the first portion based on the plurality of monitored operating attributes;
means implemented by circuitry for ranking the first weighted sum operating score compared to one or more historical weighted sum operating scores determined for one or more other portions of the configurable computing resources previously allocated to implement or execute the workload; and
means implemented by circuitry for modifying what configurable computing resources are included in the first portion based on the ranking.

### Claim 26 (depends on 24)

The apparatus of claim 24, the first weighted sum operating score is S1(Wj) and
S
1
⁡
(
W
j
)
=
U
1
⁡
(
W
j
)
⁢
M
1
+
P
1
⁡
(
W
j
)
⁢
M
2
+
M
3
C
1
⁡
(
W
j
)
+
M
4
E
1
⁡
(
W
j
)
,
where “j” represents the workload implemented or executed by the logical server, “U1(Wj)” represents a utilization operating attribute for resources included in the first configuration while the logical server implements or executes the workload, “P1(Wj)” represents a performance operating attribute of the first configuration while the logical server implements or executes the workload, “C1(Wj)” represents a cost operating attribute for costs associated with the logical server implementing or executing the workload, “E1(Wj)” represents an energy operating attribute for energy consumption while the logical server implements or executes the workload, and “M1, M2, M3, M4” represent separate multipliers to prioritize respective types of utilization, performance, cost and energy consumption operating attributes.
