DYNAMIC OPTIMIZATION OF SIMULATION RESOURCES
First Claim
1. A system that dynamically optimizes the provisioning of computing resources for execution of an application that performs a task having inter-instance dependencies, wherein the application, in order to execute properly and resolve the inter-instance dependencies, includes one or more application-imposed constraints requiring a pre-configuration specification of at least one of the computing resources allocated to the application, the system comprising:
- (a) a cluster service that provisions a cluster of computing resources on a hardware provider platform for executing the application;
(b) an application service that configures the application in accordance with the application-imposed constraints, and initiates execution of the application on the provisioned cluster;
(c) an application monitoring service that monitors execution of the application for (i) a plurality of computing resource change indicators and (ii) one or more restart files generated by the application; and
(d) a computing resource evaluation engine that (i) continuously analyzes the computing resource change indicators and restart files to determine whether modification of the current computing resources is warranted and, if so, (ii) implements a change in the current computing resources while the application is running.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention dynamically optimizes computing resources allocated to a simulation task while it is running. It satisfies application-imposed constraints and enables the simulation application performing the simulation task to resolve inter-instance (including inter-server) dependencies inherent in executing the simulation task in a parallel processing or other HPC environment. An intermediary server platform, between the user of the simulation task and the hardware providers on which the simulation task is executed, includes a cluster service that provisions computing resources on hardware provider platforms, an application service that configures the simulation application in accordance with application-imposed constraints, an application monitoring service that monitors execution of the simulation task for computing resource change indicators (including computing resource utilization and application-specific information extracted from output files generated by the simulation application) as well as restart files, and a computing resource evaluation engine that determines when a change in computing resources is warranted.
-
Citations
60 Claims
-
1. A system that dynamically optimizes the provisioning of computing resources for execution of an application that performs a task having inter-instance dependencies, wherein the application, in order to execute properly and resolve the inter-instance dependencies, includes one or more application-imposed constraints requiring a pre-configuration specification of at least one of the computing resources allocated to the application, the system comprising:
-
(a) a cluster service that provisions a cluster of computing resources on a hardware provider platform for executing the application; (b) an application service that configures the application in accordance with the application-imposed constraints, and initiates execution of the application on the provisioned cluster; (c) an application monitoring service that monitors execution of the application for (i) a plurality of computing resource change indicators and (ii) one or more restart files generated by the application; and (d) a computing resource evaluation engine that (i) continuously analyzes the computing resource change indicators and restart files to determine whether modification of the current computing resources is warranted and, if so, (ii) implements a change in the current computing resources while the application is running. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for dynamically optimizing the provisioning of computing resources for execution of an application that performs a task having inter-instance dependencies, wherein the application, in order to execute properly and resolve the inter-instance dependencies, includes one or more application-imposed constraints requiring a pre-configuration specification of at least one of the computing resources allocated to the application, the method comprising the following steps:
-
(a) provisioning a cluster of computing resources on a hardware provider platform for executing the application; (b) configuring the application in accordance with the application-imposed constraints, and initiating execution of the application on the provisioned cluster; (c) monitoring execution of the application for (i) a plurality of computing resource change indicators and (ii) one or more restart files generated by the application; and (d) continuously analyzing the computing resource change indicators and restart files to determine whether modification of the current computing resources is warranted and, if so, implementing a change in the current computing resources while the application is running. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A system that facilitates hardware and software metering of tasks performed by a plurality of applications on behalf of a plurality of users, the system comprising:
-
(a) a cluster service that provisions a first cluster of computing resources on one of a plurality of hardware provider platforms for executing an application on behalf of a user and, in the event a change in computing resources is warranted while the application is running, provisions a second cluster of computing resources and terminates the application on the first cluster; (b) an application service that configures the application and initiates execution of the application on the provisioned first cluster and, in the event the second cluster is provisioned by the cluster service, reconfigures the application and resumes execution of the application on the second cluster; (c) a license service that authenticates each user of the application with a corresponding license server before permitting that user to initiate execution of the application on the provisioned first and second cluster; (d) a hardware metering module that monitors the total hardware time the provisioned computing resources are in use during execution of the task, wherein the total hardware time includes the sum of the times the provisioned computing resources are in use on the first cluster and the second cluster; and (e) a software metering module that monitors the total software time the application is in use during execution of the task, wherein the total software time includes the sum of the times the application is in use on the first cluster and the second cluster. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A method for facilitating hardware and software metering of tasks performed by a plurality of applications on behalf of a plurality of users, the method comprising the following steps:
-
(a) provisioning a first cluster of computing resources on one of a plurality of hardware provider platforms for executing an application on behalf of a user and, in the event a change in computing resources is warranted while the application is running, provisioning a second cluster of computing resources and terminating the application on the first cluster; (b) configuring the application and initiating execution of the application on the provisioned first cluster and, in the event the second cluster is provisioned by the cluster service, reconfigures the application and resumes execution of the application on the second cluster; (c) authenticating each user of the application with a corresponding license server before permitting that user to initiate execution of the application on the provisioned first and second cluster; (d) monitoring the total hardware time the provisioned computing resources are in use during execution of the task, wherein the total hardware time includes the sum of the times the provisioned computing resources are in use on the first cluster and the second cluster; and (e) monitoring the total time the application is in use during execution of the task, wherein the total software time includes the sum of the times the application is in use on the first cluster and the second cluster. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
Specification