IP Library Granted Patent US 9,852,000
Granted Patent B2
US 9,852,000 · App. 14/915,217 · Granted Dec 26, 2017

Consolidating operations associated with a plurality of host devices

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 9,852,000
App. No.
14/915,217
Granted
Dec 26, 2017
Kind
B2
Abstract

Techniques described herein generally relate to consolidating computation tasks associated with a plurality of virtual machines. In one embodiment, a method may include forming a pipeline having at least a first core and a second core after having detected a formation condition, identifying a first set of operations of a first virtual machine running on a first host device that are similar to a second set of operations of a second virtual machine running on a second host device, identifying a third set of operations of the first virtual machine that are similar to a fourth set of operations of the second virtual machine, dispatching the first set of operations and the second set of operations to the first core of the pipeline for execution, and dispatching the third set of operations and the fourth set of operations to the second core of the pipeline for execution.

Claims (47)

1. A method to consolidate computation tasks associated with a plurality of virtual machines that run on two or more host devices, the method comprising:

operating a first host device and a second host device, wherein the first host device is operated at a first data center that is located at a first physical location, and wherein the second host device is operated at a second data center that is located at a second physical location;

detecting a pipeline formation condition based on at least one of:

determining that at least one of the first host device and the second host device is underutilized,

determining that a number of instances of application of a virtual machine fork operation exceeds a threshold number, and

determining that a specific number of general purpose processors or general purpose cores are used to perform specialized operations;

forming a pipeline that includes at least a first core and a second core,

after having detected the pipeline formation condition;

identifying a first set of operations of a first virtual machine on the first host device that are similar to a second set of operations of a second virtual machine on the second host device, wherein identifying the first set of operations that are similar to the second set of operations comprises identifying that each of the first set of operations and the second set of operations are associated with a first type of computation;

identifying a third set of operations of the first virtual machine that are similar to a fourth set of operations of the second virtual machine, wherein identifying the third set of operations that are similar to the fourth set of operations comprises identifying that each of the third set of operations and the fourth set of operations are associated with a second type of computation;

dispatching the first set of operations and the second set of operations to the first core of the pipeline for execution; and

dispatching the third set of operations and the fourth set of operations to the second core of the pipeline for execution, wherein the first core is more tailored to perform the first type of computation relative to the second core, and wherein the second core is more tailored to perform the second type of computation relative to the first core.

2. The method of claim 1 , further comprising partitioning the computation tasks into a plurality of sets of operations.

3. The method of claim 1 , further comprising cloning the first virtual machine to obtain the second virtual machine.

4. The method of claim 1 , wherein identifying the first set of operations that are similar to the second set of operations comprises determining that each of the first set of operations and the second set of operations are based on a same type of instructions.

5. The method of claim 1 , further comprising passing data from the first core of the pipeline to the second core of the pipeline through at least one of a private layer data cache and a public layer cache.

6. A non-transitory computer readable medium that includes executable instructions, which in response to execution by a processor, cause the processor to perform or control performance of a method to consolidate computation tasks associated with a plurality of virtual machines that run on two or more host devices, wherein the method comprises:

instructing operation of a first host device and a second host device, wherein the first host device is operated at a first data center that is located at a first physical location, and wherein the second host device is operated at a second data center that is located at a second physical location;

cloning a first virtual machine to obtain a second virtual machine;

identifying a first set of operations of the first virtual machine on the first host device that are similar to a second set of operations of the second virtual machine on the second host device, wherein identifying the first set of operations that are similar to the second set of operations comprises identifying that each of the first set of operations and the second set of operations are associated with a first type of computation;

identifying a third set of operations of the first virtual machine that are similar to a fourth set of operations of the second virtual machine, wherein identifying the third set of operations that are similar to the fourth set of operations comprises identifying that each of the third set of operations and the fourth set of operations are associated with a second type of computation;

dispatching the first set of operations and the second set of operations to a first core of a pipeline for execution; and

dispatching the third set of operations and the fourth set of operations to a second core of the pipeline for execution.

7. The non-transitory computer readable medium of claim 6 , wherein the method further comprises:

partitioning the computation tasks into a plurality of sets of operations.

8. The non-transitory computer readable medium of claim 6 , wherein the first core is more tailored to perform the first type of computation relative to the second core, and wherein the second core is more tailored to perform the second type of computation relative to the first core.

9. The non-transitory computer readable medium of claim 6 , wherein the method further comprises;

determining whether at least one of the first host device and the second host device is underutilized.

10. The non-transitory computer readable medium of claim 6 , wherein the method further comprises:

determining whether a number of instances of applying a virtual machine fork operation exceeds a threshold number.

11. The non-transitory computer readable medium of claim 6 , wherein identifying the first set of operations that are similar to the second set of operations comprises determining that each of the first set of operations and the second set of operations are based on a same type of instructions.

12. The non-transitory computer readable medium of claim 6 , wherein the method further comprises:

passing data from the first core of the pipeline to the second core of the pipeline through at least one of a private layer data cache and a public layer cache.

13. An apparatus, comprising:

a multi-core processor that includes a first core and a second core formed in a pipeline, wherein formation of the first core and the second core in the pipeline is based on detection of a pipeline formation condition according to at least one of:

determination that at least one of a first host device and a second host device is underutilized,

determination that a number of instances of application of a virtual machine fork operation exceeds a threshold number, and

determination that a particular number of general purpose processors or general purpose cores are used to perform specialized operations;

a monitor module operatively coupled to the multi-core processor, and

configured to:

identify a first set of operations of a first virtual machine that runs on the first host device that are similar to a second set of operations of a second virtual machine that runs on the second host device, wherein the identification of the first set of operations includes an identification that each of the first set of operations and the second set of operations are associated with a first type of computation, and

identify a third set of operations of the first virtual machine that are similar to a fourth set of operations of the second virtual machine, wherein the identification of the third set of operations includes an identification that each of the third set of operations and the fourth set of operations are associated with a second type of computation; and

a hypervisor operatively coupled to the multi-core processor and configured to, in response to the identification of the first set of operations and the identification of the third set of operations:

dispatch the first set of operations and the second set of operations to the first core of the pipeline for execution;

dispatch the third set of operations and the fourth set of operations to the second core of the pipeline for execution; and

pass data from the first core of the pipeline to the second core of the pipeline through at least one of a private layer data cache and a public layer cache.

14. The apparatus of claim 13 , wherein the monitor module comprises executable instructions of an application configured to interact with an operating system operatively coupled to the multi-core processor.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2021
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: INVINCIBLE IP LLC
Reel/Frame 055594/0500 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2020
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 054129/0627 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2020
From: MA, XUDONG
To: H&C SCIENTIFIC RESOURCES INTERNATIONAL
Reel/Frame 053848/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2020
From: H&C SCIENTIFIC RESOURCES INTERNATIONAL
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 053852/0752 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →