Promotion of calculations to cloud-based computation resources
Abstract
Embodiments relate to systems and methods for the promotion of calculations to cloud-based computation resources. One or more applications, such as spreadsheet applications, can prepare the calculation of a relatively large-scale computation, such as running statistical reports on large (e.g., greater than 1000 by 1000 cell) spreadsheets or other data objects. If the pending calculation is determined to be greater than a computation threshold for instance in computation intensity or data size, a computation request can be sent to a promotion engine. The promotion engine can identify a set of computation resources located in a cloud or other network and transmit the data request and subject data to the set of computation resources, which afford greater computation speed than the local machine hosting the requesting application. A set of results is returned from the cloud to the requesting application, thereby creating higher bandwidth and faster calculation times for the user.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method comprising:
receiving, by a processor communicatively coupled to a local computing system and a remote computation resource, from an application running on the local computing system, a request for the remote computation resource to perform a computational task, wherein the remote computation resource comprises a plurality of resource servers, managed by a cloud management system, to host virtual machines, and wherein the request specifies a processor throughput requirement and a communication bandwidth requirement for a virtual machine to serve as part of the remote computation resource;
transmitting, by the processor, the request to cause the cloud management system to:
identify a set of resource servers of the plurality of resource servers to deliver the processor throughput requirement and the communication bandwidth requirement;
generate a resource aggregation table that identifies the set of resource servers to supply the processor throughput and the communication bandwidth;
build, using the resource aggregation table, a plurality of virtual machines that each meets the processor throughput requirement and the communication bandwidth requirement to perform the computational task; and
perform the computational task using the plurality of virtual machines;
receiving, by the processor, a set of results generated by the remote computation resource having performed the computational task using the plurality of virtual machines; and
transmitting, by the processor, the set of results to the local computing system.
2. The method of claim 1 , wherein the request is generated by the application by comparing a computation time to perform the computation task with a threshold value, wherein the threshold value is determined in view of a deviation from an average computation time, and wherein the remote computation resource comprises at least one of a set of cloud-based computation resources or a set of database server resources.
3. The method of claim 1 , wherein the application comprises at least one of a spreadsheet application, a database application, a statistical application, or a modeling application.
4. The method of claim 1 , further comprising determining whether the application has reached a maximum computation threshold to trigger the request for the remote computation resource to perform the computation.
5. The method of claim 4 , wherein the computation threshold comprises at least one of a maximum computational intensity threshold or a maximum data size threshold.
6. The method of claim 1 , further comprising storing the set of results in a data store.
7. A system, comprising:
a memory;
a processor, operably connected to the memory, the processor programmed to:
receive, from an application running on a local computing system, a request for a remote computation resource to perform a computational task, wherein the remote computation resource comprises a plurality of resource servers, managed by a cloud management system, to host virtual machines, and wherein the request specifies a processor throughput requirement and a communication bandwidth requirement for a virtual machine to serve as part of the remote computation resource;
transmit the request to cause the cloud management system to:
identify a set of resource servers of the plurality of resource servers to deliver the processor throughput requirement and the communication bandwidth requirement;
generate a resource aggregation table that identifies the set of resource servers to supply the processor throughput and the communication bandwidth;
build, using the resource aggregation table, a plurality of virtual machines that each meets the processor throughput requirement and the communication bandwidth requirement to perform the computational task; and
perform the computational task using the plurality of virtual machines;
receive a set of results generated by the remote computation resource having performed the computational task using the plurality of virtual machines; and
transmit the set of results to the local computing system.
8. The system of claim 7 , wherein the request is generated by the application by comparing a computation time to perform the computation task with a threshold value, wherein the threshold value is determined in view of a deviation from an average computation time, and wherein the remote computation resource comprises at least one of a set of cloud-based computation resources or a set of database server resources.
9. The system of claim 7 , wherein the application comprises at least one of a spreadsheet application, a database application, a statistical application, or a modeling application.
10. The system of claim 7 , wherein the processor is further to determine whether the application has reached a maximum computation threshold to trigger the request for the remote computation resource to perform the computation.
11. The system of claim 10 , wherein the computation threshold comprises at least one of a maximum computational intensity threshold or a maximum data size threshold.
12. The system of claim 7 , wherein to transmit the set of results, the processor is further to transmit the set of results to the application.
13. The system of claim 7 , wherein the processor is further to store the set of results in a data store.
14. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to:
receive, by the processor, from an application running on the local computing system, a request for the remote computation resource to perform a computational task, wherein the remote computation resource comprises a plurality of resource servers, managed by a cloud management system, to host virtual machines, and wherein the request specifies a processor throughput requirement and a communication bandwidth requirement for a virtual machine to serve as part of the remote computation resource;
transmit the request to cause the cloud management system to:
identify a set of resource servers of the plurality of resource servers to deliver the processor throughput requirement and the communication bandwidth requirement;
generate a resource aggregation table that identifies the set of resource servers to supply the processor throughput and the communication bandwidth;
build, using the resource aggregation table, a plurality of virtual machines that each meets the processor throughput requirement and the communication bandwidth requirement to perform the computational task; and
perform the computational task using the plurality of virtual machines;
receive a set of results generated by the remote computation resource having performed the computational task using the plurality of virtual machines; and
transmit the set of results to the local computing system.
15. The non-transitory computer-readable medium of claim 14 , wherein the request is generated by the application by comparing a computation time to perform the computation task with a threshold value, wherein the threshold value is determined in view of a deviation from an average computation time, and wherein the remote computation resource comprises at least one of a set of cloud-based computation resources or a set of database server resources.
16. The non-transitory computer-readable medium of claim 14 , wherein the application comprises at least one of a spreadsheet application, a database application, a statistical application, or a modeling application.
17. The non-transitory computer-readable medium of claim 14 , wherein the processor is further to determine whether the application has reached a maximum computation threshold to trigger the request for the remote computation resource to perform the computation.
18. The non-transitory computer-readable medium of claim 17 , wherein the computation threshold comprises at least one of a maximum computational intensity threshold or a maximum data size threshold.
19. The non-transitory computer-readable medium of claim 14 , wherein to transmit the set of results, the processor is further to transmit the set of results to the application.
20. The non-transitory computer-readable medium of claim 14 , wherein the processor is further to store the set of results in a data store.Join the waitlist — get patent alerts
Track US9910708B2 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.