IP Library Granted Patent US 10,389,813
Granted Patent B2
US 10,389,813 · App. 15/682,011 · Granted Aug 20, 2019

Reconfigurable cloud computing

Inventors: Stephen M. Hebert (Houston, TX); Robert L. Sherrard (McKinney, TX); Leonardo E. Reiter (Allen, TX)
Assignee: NIMBIX, INC.
H04L67/1097G06F9/5038G06F9/5072H04L67/10H04L67/20
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,389,813
App. No.
15/682,011
Granted
Aug 20, 2019
Kind
B2
Abstract

A method, system, and computer-readable storage medium for a reconfigurable computing system are disclosed. One method involves configuring one or more computing resources (selected according to a workflow that specifies an application to be executed) of a computing node and executing, using the one or more computing resources, at least a portion of an application at the computing node. At least one of the one or more computing resources is a reconfigurable logic device, and the configuring, at least in part, configures the reconfigurable logic device according to a configuration script of the workflow. The executing comprises performing one or more operations. The one or more operations are performed by the reconfigurable logic device. The reconfigurable logic device is configured to perform the one or more operations by virtue of having been configured according to the configuration script.

Claims (135)

1. A method comprising:

configuring a computing node, wherein

the configuring changes a configuration of the computing node from a previous configuration to a new configuration, and comprises

receiving at least a portion of a workflow at a computing node, wherein

the workflow specifies an application to be executed,

configuring one or more computing resources of the computing node according to the at least the portion of the workflow, wherein

the configuring comprises

 selecting the one or more computing resources according to the at least the portion of the workflow,

the at least the portion of the workflow comprises a configuration script,

at least one of the one or more computing resources is a reconfigurable logic device, and

the configuring further comprises

 configuring the reconfigurable logic device according to the configuration script,

receiving at least a portion of the application at the computing node, and

executing the at least the portion of the application at the computing node, wherein

the at least the portion of the application is executed by the one or more computing resources,

the executing the at least the portion of the application comprises performing one or more operations,

the one or more operations are performed by the reconfigurable logic device, and

the reconfigurable logic device is configured to perform the one or more operations by virtue of having been configured according to the configuration script.

2. The method of claim 1 , wherein

the at least a portion of the workflow is configured to be received from a server node, and

the workflow identifies the configuration script by virtue of the workflow comprising the configuration script, and

the configuring further comprises

configuring the reconfigurable logic device by executing the configuration script.

3. The method of claim 2 , wherein

the workflow is configured to cause the application to be executed, at least in part, by virtue of being configured to cause the application to be executed by a plurality of computing nodes,

the plurality of computing nodes comprises the computing node,

the workflow identifies the configuration script by virtue of the at least the portion of the workflow comprising the configuration script,

the reconfigurable logic device is a field-programmable gate array (FPGA), and

the executing the configuration script causes a bit stream to be loaded into the FPGA.

4. The method of claim 2 , wherein

the reconfigurable logic device is a field-programmable gate array (FPGA),

the configuration script references a file, and

the file comprises information in a hardware description language.

5. The method of claim 1 , wherein

prior to the configuring, the one or more computing resources were configured according to one or more other configuration scripts of another work flow.

6. The method of claim 5 , wherein

the workflow is configured to cause the application to be executed, at least in part, by a plurality of computing nodes substantially simultaneously,

the plurality of computing nodes comprises the computing node,

the reconfigurable logic device is a field-programmable gate array (FPGA), and

the FPGA was configured according to another configuration script of the another work flow.

7. The method of claim 6 , wherein

the configuring reconfigures the FPGA by changing a bit stream stored in the FPGA, and

the bit stream stored in the FPGA is changed by being replaced with a bit stream associated with the application.

8. The method of claim 1 , wherein

the reconfigurable logic device comprises at least one of

a field-programmable gate array (FPGA),

an erasable programmable logic device (EPLD),

a complex programmable logic device (CPLD), or

programmable array logic (PAL).

9. The method of claim 1 , wherein

the one or more computing resources comprise a plurality of computing resources,

the plurality of computing resources comprise the at least one of the one or more computing resources, and

one or more of the plurality of computing resources other than the at least one of the one or more computing resources comprises at least one of

a graphics processing unit (GPU),

a digital signal processor (DSP), or

a central processing unit (CPU).

10. The method of claim 1 , further comprising:

selecting the one or more computing resources according to the workflow based, at least in part, on the one or more computing resources ability to execute at least a portion of the at least the portion of the application.

11. The method of claim 10 , further comprising:

workflow indicates the one or more computing resources.

12. The method of claim 10 , wherein

the one or more computing resources are selected to execute the at least the portion of the application by

determining that one or more attributes of the reconfigurable logic device satisfy a resource requirement for the at least the portion of the application, and

determining that the reconfigurable logic device can be configured to execute the at least the portion of the application according to the workflow, prior to the executing the at least the portion of the application.

13. A system comprising:

a computing node, wherein

the computing node comprises

one or more computing resources,

a computer-readable storage medium, coupled to the plurality of computing resources,

a configurator, stored in the computer-readable storage medium, and

a resource manager, stored in the computer-readable storage medium,

the computing node is configured to

receive at least a portion of a workflow, wherein

the workflow specifies an application to be executed, and

receive at least a portion of the application,

the configurator is configured to configure the compute node from a previous configuration to a new configuration, according to the at least the portion of the workflow, by virtue of being configured to configure the one or more computing resources, wherein

the one or more computing resources are configured by

selecting the one or more computing resources according to the at least the portion of the workflow,

the at least the portion of the workflow comprises a configuration script,

at least one of the one or more computing resources is a reconfigurable logic device, and

the configurator, at least in part, configures the reconfigurable logic device according to the configuration script, and

the resource manager is configured to cause execution of the at least the portion of the application at the computing node, wherein

the at least the portion of the application is executed by the one or more computing resources,

the execution of the at least the portion of the application comprises performance of one or more operations,

the one or more operations are performed by the reconfigurable logic device, and

the reconfigurable logic device is configured to perform the one or more operations by virtue of having been configured according to the configuration script.

14. The system of claim 13 , wherein

the at least a portion of the workflow comprises the configuration script,

the at least a portion of the workflow is configured to be received from a server node, and

the workflow identifies the configuration script by virtue of the workflow comprising the configuration script, and

the configurator is further configured to configure the reconfigurable logic device by virtue of being configured to

cause execution of the configuration script.

15. The system of claim 14 , wherein

the workflow is configured to cause the application to be executed, at least in part, by virtue of being configured to cause the application to be executed by a plurality of computing nodes,

the plurality of computing nodes comprises the computing node,

the workflow identifies the configuration script by virtue of the at least the portion of the workflow comprising the configuration script,

the reconfigurable logic device is a field-programmable gate array (FPGA), and

the execution of the configuration script causes a bit stream to be loaded into the FPGA.

16. The system of claim 14 , wherein

the reconfigurable logic device is a field-programmable gate array (FPGA),

the configuration script references a file, and

the file comprises information in a hardware description language.

17. The system of claim 13 , wherein

prior to configuring the one or more computing resources, the one or more computing resources were configured according to one or more other configuration scripts of another work flow.

18. The system of claim 17 , wherein

the workflow is configured to cause the application to be executed, at least in part, by a plurality of computing nodes substantially simultaneously,

the plurality of computing nodes comprises the computing node,

the reconfigurable logic device is a field-programmable gate array (FPGA),

the FPGA was configured according to another configuration script of the another work flow,

the configuring reconfigures the FPGA by changing a bit stream stored in the FPGA, and

the bit stream stored in the FPGA is changed by being replaced with a bit stream associated with the application.

19. The system of claim 13 , wherein

the reconfigurable logic device comprises at least one of

a field-programmable gate array (FPGA),

an erasable programmable logic device (EPLD),

a complex programmable logic device (CPLD), or

programmable array logic (PAL).

20. A computer program product embodied in a non-transitory computer-readable storage medium, comprising:

a plurality of instructions, that, when executed by a hardware processor of a computing node, are configured to cause the hardware processor to configure a compute node from a previous configuration to a new configuration, according to the at least a portion of a workflow, by virtue of being configured to

receive the at least the portion of the workflow at the computing node, wherein

the workflow specifies an application to be executed,

configure one or more computing resources of the computing node according to the at least the portion of the workflow, wherein

the instructions configured to configure the one or more computing resources comprise instructions configured to

select the one or more computing resources according to the at least the portion of the workflow,

the at least the portion of the workflow comprises a configuration script,

at least one of the one or more computing resources is a reconfigurable logic device, and

the instructions configured to cause the hardware processor to configure, at least in part, configure the reconfigurable logic device according to the configuration script,

receive at least a portion of the application at the computing node, and

cause execution of the at least the portion of the application at the computing node, wherein

the at least the portion of the application is executed by the one or more computing resources,

the instructions configured to cause the hardware processor to cause execution of the at least the portion of the application comprises instructions configured to cause the hardware processor to

cause performance of one or more operations,

the one or more operations are performed by the reconfigurable logic device, and

the reconfigurable logic device is configured to perform the one or more operations by virtue of having been configured according to the configuration script; and

the non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2022
From: HEBERT, STEPHEN M.; SHERRARD, ROBERT L.; REITER, LEONARDO E.
To: NIMBIX, INC.
Reel/Frame 061489/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2022
From: NIMBIX, INC.
To: AGARIK SAS
Reel/Frame 060681/0171 →
RELEASE OF SECURITY INTEREST Recorded Jul 30, 2021
From: COMERICA BANK
To: NIMBIX, INC.
Reel/Frame 057040/0865 →
CHANGE OF ADDRESS Recorded Apr 11, 2019
From: NIMBIX, INC.
To: NIMBIX, INC.
Reel/Frame 048855/0975 →
SECURITY INTEREST Recorded Mar 29, 2018
From: NIMBIX, INC.
To: COMERICA BANK
Reel/Frame 045381/0976 →
Continuity (4)
Continuation 14809644 · Jul 27, 2015
Continuation 14282407 · May 20, 2014
Continuation 13449003 · Apr 17, 2012
Related Publication 20170346902A1 · Nov 30, 2017