Dynamic resource allocation for computational simulations
By dynamically analyzing simulation attributes and adjusting computing resources during the calculation simulation process, the problem of inadequate resource allocation in the prior art is solved, and the robustness and efficiency of simulation are improved.
Patent Information
- Application Number
- CN202111114210.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-09-24
- Filing Date
- 2021-09-23
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2041-09-23
AI Technical Summary
The prior art is difficult to automatically adapt to resource allocation during the calculation simulation process, resulting in the simulation that may fail due to insufficient resources or inefficient resource allocation.
By analyzing the analog input and dynamically analyzing the simulation attributes, the computing resources, including the number and type of computing processing units and memory, are automatically determined and adjusted to ensure the optimal resource configuration of the simulation.
The robustness and efficiency of computing simulation are improved, simulation failure caused by insufficient resources is avoided, resource usage is optimized, and the utilization rate of computing resources is improved.
Smart Images

Figure CN114254531B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Patent Application No. 17 / 030,991, filed on September 24, 2020, entitled “DYNAMIC RESOURCE ALLOCATION FOR COMPUTATIONAL SIMULATION,” the disclosure of which is incorporated herein by reference in its entirety. Background Art
[0003] Computer-aided engineering (CAE) is the practice of simulating representations of physical objects using computational methods including, but not limited to, the finite element method (FEM) and the finite difference method (FDM). In order to perform simulations using FEM and / or FDM, the domain must be discretized into a finite number of elements called a mesh. FEM and FDM are techniques for converting differential equations (e.g., partial differential equations (PDEs)) into a system of equations that can be solved numerically. Summary of the invention
[0004] An example computer-implemented method for automatic resource allocation during a computational simulation is described herein. The method includes analyzing a set of simulation inputs to determine a first set of computing resources for performing a simulation, and initiating the simulation using the first set of computing resources. The method also includes dynamically analyzing at least one attribute of the simulation to determine a second set of computing resources for performing the simulation, and performing the simulation using the second set of computing resources. The second set of computing resources includes a different number, amount, or type of computing processing units or memory than the first set of computing resources.
[0005] Additionally, in some implementations, the step of dynamically analyzing at least one property of the simulation further determines that the simulation requires more computing processing units or memory than the computing resources included in the first set of computing resources.
[0006] Alternatively or additionally, the set of simulation inputs includes at least one of a geometry characterization, a material property, a boundary condition, a loading condition, a mesh parameter, a solver option, a simulation output request, or a time parameter.
[0007] Alternatively or additionally, at least one attribute of the simulation is a simulation requirement, a simulation performance characteristic, or a computing power indicator. The computing power indicator includes at least one of a usage level of computing power, memory bandwidth, network bandwidth, or network latency.
[0008] Optionally, in some embodiments, a respective simulation input of each simulation in a plurality of simulations is analyzed.
[0009] In some embodiments, the step of performing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources. Alternatively, the step of performing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources.
[0010] Alternatively or additionally, in some embodiments, the method optionally includes adaptively refining the mesh during the simulation. The adaptive refinement of the mesh includes changing the mesh density and / or the order of the mesh elements.
[0011] Alternatively or additionally, in some embodiments, a set of simulation inputs is analyzed to determine a first set of computing resources for performing the simulation while achieving a target value of the simulation metric. Alternatively or additionally, in some embodiments, at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources for performing the simulation while achieving a target value of the simulation metric. The simulation metric is core hour cost, memory requirement, simulation run time, hardware configuration efficiency, or energy cost. Furthermore, the target value of the simulation metric is an optimal value of the simulation metric.
[0012] Alternatively or additionally, each of the first set of computing resources and the second set of computing resources includes at least one of a plurality of virtual machines or hardware configurations.
[0013] Alternatively or additionally, in some embodiments, the method optionally includes transferring a state of the simulation from the first set of computing resources to the second set of computing resources. The state of the simulation includes at least one of mesh information, constraints and loading conditions, derived quantities, decomposition matrices, primary solutions and secondary field variables, history variables, or stored results.
[0014] Alternatively or additionally, in some embodiments, at least one property of the simulation is periodically analyzed to determine a second set of computing resources for performing the simulation.
[0015] Alternatively or additionally, the simulation is characterized by a set of equations. Optionally, the set of equations represents partial differential equations (PDEs).
[0016] Alternatively or additionally, in some embodiments, dynamically analyzing optionally includes comparing at least one property of the simulation to a threshold value.
[0017] Alternatively or additionally, in some embodiments, the first set of computing resources and the second set of computing resources are part of a computing cluster.
[0018] An example system for automatic resource allocation during a computational simulation is described herein. The system includes a computing cluster and a resource allocator operably coupled to the computing cluster. The resource allocator includes a processor and a memory operably coupled to the processor, wherein the memory has computer executable instructions stored thereon. The resource allocator is configured to analyze a set of simulation inputs to determine a first set of computing resources in the computing cluster for performing a simulation. The first set of computing resources is configured to start a simulation. In addition, the resource allocator is configured to dynamically analyze at least one attribute of the simulation to determine a second set of computing resources in the computing cluster for performing a simulation. The second set of computing resources is configured to perform a simulation. The second set of computing resources includes a different number, quantity, or type of computing processing units or memories than the first set of computing resources.
[0019] Additionally, in some implementations, the step of dynamically analyzing at least one property of the simulation further determines that the simulation requires more computing processing units or memory than the computing resources included in the first set of computing resources.
[0020] Alternatively or additionally, the set of simulation inputs includes at least one of a geometry characterization, a material property, a boundary condition, a loading condition, a mesh parameter, a solver option, a simulation output request, or a time parameter.
[0021] Alternatively or additionally, at least one attribute of the simulation is a simulation requirement, a simulation performance characteristic, or a computing power indicator. The computing power indicator includes at least one of a usage level of computing power, memory bandwidth, network bandwidth, or network latency.
[0022] Optionally, in some embodiments, a respective simulation input of each simulation in a plurality of simulations is analyzed.
[0023] In some embodiments, the step of performing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources. Alternatively, the step of performing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources.
[0024] Alternatively or additionally, in some embodiments, the resource allocator is optionally configured to adaptively refine the mesh during simulation. Adaptive refinement of the mesh includes changing the mesh density and / or the order of mesh elements.
[0025] Alternatively or additionally, in some embodiments, a set of simulation inputs is analyzed to determine a first set of computing resources for performing the simulation while achieving a target value of the simulation metric. Alternatively or additionally, in some embodiments, at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources for performing the simulation while achieving a target value of the simulation metric. The simulation metric is core hour cost, memory requirement, simulation run time, hardware configuration efficiency, or energy cost. Furthermore, the target value of the simulation metric is an optimal value of the simulation metric.
[0026] Alternatively or additionally, each of the first set of computing resources and the second set of computing resources includes at least one of a plurality of virtual machines or hardware configurations.
[0027] Alternatively or additionally, in some embodiments, the resource allocator is optionally configured to transfer a state of the simulation from the first set of computing resources to the second set of computing resources. The state of the simulation includes at least one of mesh information, constraints and loading conditions, derived quantities, decomposition matrices, primary solutions and secondary field variables, history variables, or stored results.
[0028] Alternatively or additionally, in some embodiments, at least one property of the simulation is periodically analyzed to determine a second set of computing resources for performing the simulation.
[0029] Alternatively or additionally, the simulation is characterized by a set of equations. Optionally, the set of equations represents partial differential equations (PDEs).
[0030] Alternatively or additionally, in some embodiments, dynamically analyzing optionally includes comparing at least one property of the simulation to a threshold value.
[0031] Alternatively or additionally, in some embodiments, the first set of computing resources and the second set of computing resources are part of a computing cluster.
[0032] It should be appreciated that the above-described subject matter may also be implemented as a computer-controlled apparatus, a computer process, a computing system, or an article of manufacture, such as a computer-readable storage medium.
[0033] Other systems, methods, features and / or advantages will or may become apparent to one with skill in the art upon examination of the following figures and detailed description. All such additional systems, methods, features and / or advantages are intended to be included within this description and protected by the accompanying claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The components in the drawings are not necessarily to scale relative to each other. Like reference numerals indicate corresponding parts in the several drawings.
[0035] Figure 1is a block diagram of an example computing environment according to implementations described herein.
[0036] Figure 2 is a flow diagram illustrating example operations for automatic resource allocation for computing simulations in accordance with implementations described herein.
[0037] Figure 3 is a diagram illustrating containerization according to embodiments described herein.
[0038] Figure 4 is a flow diagram illustrating example operations for dynamically analyzing a simulation at each iterative time step in accordance with implementations described herein.
[0039] Figure 5A An example simulation model is shown where regions 1, 2, and 3 are meshed using a uniformly structured grid. Figure 5B An example simulation model is shown where regions 1, 2, and 3 are meshed using a structured grid with different mesh densities. Figure 5C It is shown that the solution Figure 5B A containerized diagram of the simulation model.
[0040] Figure 6 is a block diagram of an example computing device. DETAILED DESCRIPTION
[0041] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those generally understood by those skilled in the art. Methods and materials similar or equivalent to the methods and materials described herein may be used in the practice or testing of the present disclosure. As used in the specification and the appended claims, the singular forms "one", "an", "the" include plural forms unless the context clearly specifies otherwise. As used herein, the term "include" and its variations are used synonymously with the term "include" and its variations, and are open, non-restrictive terms. The term "optional" or "optionally" used herein refers to the feature, event or situation described subsequently that may or may not occur, and the description includes the situation where the feature, event or situation occurs and the situation where it does not occur. The range can be expressed in this article as from "about" one specific value and / or to "about" another specific value. When expressing such a range, one aspect includes from this specific value and / or to this other specific value. Similarly, on the other hand, when a value is expressed as an approximation by using the antecedent "about", the specific value should be understood. It will be further understood that the endpoints of each of the ranges are significant both in relation to the other endpoint, and independently of the other endpoint.
[0042] Described herein are systems and methods for automatic resource allocation during computational simulations (also referred to herein as "numerical simulations" or "simulations"). As described herein, the systems and methods improve the robustness and efficiency of simulations when using parallel computing resources to compute solutions to virtual models of physical objects or phenomena. It is difficult to determine a priori the set of computing resources required for a simulation using conventional techniques, especially the optimal and / or minimum set of computing resources. In other words, only a priori knowledge of the simulation may not be sufficient to accurately determine the computing resources required for the simulation. Once the simulation is started, additional information unknown at startup is collected during the simulation. For example, using conventional techniques, a user may estimate that a simulation requires "X" gigabytes (GB) of memory. There is "X" GB of available memory at the start of the simulation, but due to unknown or unknowable factors at startup, the simulation may actually require more than "X" GB of memory to complete. This can cause the simulation to fail before completion. Alternatively, the simulation may actually require less than "X" GB of memory, which may unnecessarily occupy computing resources. Conventional techniques do not automatically detect and respond to such simulation states.
[0043] The systems and methods described herein solve the above problems, such as by automatic resource allocation. For example, the systems and methods described herein improve robustness by avoiding simulation failures caused by inappropriate resource allocation. By performing dynamic analysis while the simulation is running, the computational resource determination is updated using the a posteriori knowledge of the simulation. Therefore, the systems and methods described herein can prevent the simulation failure before it occurs (i.e., the systems and methods described herein are proactive, rather than simply reacting to detected failures). The systems and methods described herein also improve efficiency by correcting the over-allocation of computational resources. The systems and methods described herein also take into account changes in required resources during simulation. These capabilities represent improvements over manually determining resource requirements, reallocating resources, and restarting simulations.
[0044] Simulation methods include, but are not limited to, FEM and FDM. For example, the concept of finite element analysis (FEA) is generally well known in the art and involves discretizing a virtual model into nodes, each node containing spatial information and connected to surrounding nodes by differential equations (e.g., partial differential equations (PDEs)) representing the physics being calculated for that node. These nodes and the differential equations describing them form a matrix representing the virtual model, and the matrix is transmitted in whole or in part to a processing unit or group of processing units to calculate a solution at a given time or frequency (or a time range or a set of frequencies).
[0045] Optionally, in an elastic cloud computing system (e.g., Figure 1In a computing environment such as the one shown in FIG. 1 , the optimal number of computing resources (e.g., number of computing cores, amount of memory, type of hardware, etc.) can be dynamically determined and selected to optimally solve a single simulation or multiple separate simulations. In a cloud computing environment, the optimal number of computing resources to be allocated to a single simulation or a group of simulations can be selected based on different criteria for optimization, such as:
[0046] Minimize core hour costs;
[0047] Minimize total simulation time;
[0048] Maximize packaging efficiency for a given hardware configuration; and / or
[0049] Minimize the energy used.
[0050] As described below, dynamically changing resources used for a simulation in a cloud computing environment can include increasing or decreasing resources (cores, RAM, etc.) allocated to a single container, or launching new containers of different sizes and mapping the simulation state from the original container to the new container, where the simulation continues or is restarted with the new container.
[0051] Now refer to Figure 1 , showing an example computing environment. The dynamic resource allocation method for computing simulation described herein can be used Figure 1 The computing environment shown in FIG. 1 includes a simulation device 110, a resource allocator 120, an originating device 140, and an observer 150. It should be understood that Figure 1 The environment shown is provided only as an example. The present disclosure contemplates the use of systems having more or fewer components and / or having Figure 1 The computing environment of the components of the different arrangements shown in the figure is used to perform the method for dynamic resource allocation for computing simulation described in this article. It should be understood that the logical operations described in this article can be performed by Figure 1 to be performed by one or more of the devices shown in, Figure 1 It is provided as an example computing environment only.
[0052] The simulation device 110, the resource allocator 120, the originating device 140 and the observer 150 are operably coupled to one or more networks 130. The present disclosure contemplates that the network 130 is any suitable communication network. The networks 130 may be similar to each other in one or more aspects. Alternatively or additionally, the networks 130 may be different from each other in one or more aspects. The network 130 may include a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a metropolitan area network (MAN), a virtual private network (VPN), etc., including a portion or combination of any of the above networks. In addition, each of the simulation device 110, the resource allocator 120, the originating device 140 and the observer 150 is coupled to one or more networks 130 via one or more communication links. The present disclosure contemplates that the communication link is any suitable communication link. For example, the communication link can be implemented by any medium that is conducive to data exchange, including but not limited to wired, wireless and optical links. Example communication links include, but are not limited to, LAN, WAN, MAN, Ethernet, Internet, or any other wired or wireless link such as WiFi, WiMax, 3G, 4G, or 5G.
[0053] The simulation device 110 can be, for example, a computing cluster composed of multiple nodes 115 (e.g., nodes 115A, 115B, and 115C). As used herein, a computing cluster is a plurality of interconnected computing resources that are accessible via a network and have more resources (e.g., computing power, data storage, etc.) than those found in a typical personal computer. In some embodiments, the computing cluster is a cloud-based computing cluster. Cloud-based computing is an on-demand computing environment in which tasks are performed by remote resources (e.g., processing units, storage, databases, software, etc.) that are linked to a user (e.g., an originating device 140) via a communication network (e.g., the Internet) or other data transmission medium. Cloud-based computing is well known in the art and is not described in further detail herein. In other embodiments, the computing cluster is a local computing cluster (e.g., computing assets linked via a LAN) in which resources are linked to a user (e.g., an originating device 140) via a communication network (e.g., a LAN) or other data transmission medium. Each node 115 can be composed of one or more computing devices (e.g., Figure 6 It should be understood that Figure 1The number of nodes 115 in (i.e., three) is for illustrative purposes only. There is no limit to the number of nodes 115 that the simulation device 110 can support. The simulation device 110 can be configured to perform computational simulations (e.g., FEM, FDM, or other computational simulation techniques). Example systems and methods for running simulations using a cloud-based computing cluster are described in U.S. patent application No. 16 / 856,222, entitled “SYSTEMS AND METHODS FOR RUNNING A SIMULATION,” filed by OnScale, Inc. on April 23, 2020.
[0054] Resource allocator 120 may be, for example, Figure 6 The resource allocator 120 may be configured to execute an application 122. The application 122 may include instructions for performing one or more operations, which are used as described in reference to Figure 2 The operation of automatic resource allocation for computing simulation. For example, resource allocator 120 can be configured to receive and / or access information associated with one or more simulations (e.g., information including but not limited to simulation inputs, simulation properties and / or computing power indicators described herein), analyze such information associated with one or more simulations, and / or allocate computing resources based on such analysis. Such information associated with one or more simulations can be received from a monitoring device or process. Optionally, resource allocator 120 can be configured to monitor information associated with one or more simulations (e.g., information including but not limited to simulation inputs, simulation properties and / or computing power indicators described herein). Resource allocator 120 can communicate with network 130 via network interface 124. Optionally, network interface 124 can encrypt data before transmitting data via network 130. The present disclosure contemplates that any type of encryption can be used.
[0055] The originating device 140 may be, for example, Figure 6 140 can be a computing device of the computing device 600 shown in . The originating device 140 can be a computing device associated with a user, such as a personal computer, a desktop computer, a laptop computer, a tablet computer, etc. The originating device 140 can be configured to execute an application 142. The application 142 can be an engineering application (e.g., a CAD application) or any other type of application that combines modeling, modeling data, simulation and / or simulation data. The originating device 140 can request that a computational simulation be performed by the simulation device 110. The originating device 140 can communicate with the network 130 via a network interface 144. Optionally, the network interface 144 can encrypt data before transmitting the data via the network 130. The present disclosure contemplates that any type of encryption can be used.
[0056] The observer 150 may be, for example, Figure 6 The computing device 600 shown in FIG. 1 is a computing device. The observer 150 can be configured to execute an application 152. The application 152 can include instructions for performing one or more operations, which are used as described in reference to FIG. Figure 2 The operation of automatic resource allocation for computing simulations described herein. For example, observer 150 can be configured to execute a process monitoring application. In other words, observer 150 can be configured to monitor information associated with one or more simulations (e.g., information including, but not limited to, simulation attributes and / or computing power indicators described herein). Observer 150 can communicate with network 130 via network interface 154. Optionally, network interface 154 can encrypt data before transmitting data via network 130. This includes, but is not limited to, transmitting the monitored information to resource allocator 120, which can be configured to analyze the monitored information. The present disclosure contemplates that any type of encryption can be used.
[0057] Reference now Figure 2 , a flow diagram illustrating example operations for automatic resource allocation for a computing simulation. Figure 2 The example operations shown can be found in Figure 1 For example, in some embodiments, the example operations may be performed by Figure 1 The resource allocator 120 and / or the simulation device 110 shown are performed. Optionally, in some embodiments, the example operations may be performed by Figure 1 , the resource allocator 120, the observer 130 and / or the simulation device 110 shown in FIG. As described below, Figure 2 One or more of the operations shown in can be performed automatically, e.g., without user input and / or intervention. For example, once a simulation is started (e.g., Figure 2 In step 204), a dynamic analysis is performed (e.g. Figure 2 Step 206), and adjust computing resources (eg Figure 2 In other words, no user input or intervention is required to adjust the computing resources. Figure 2 All operations shown in can be performed automatically, eg, without user input and / or intervention.
[0058] In step 202, a set of simulation inputs are analyzed to determine a first set of computing resources for performing the simulation. The analysis of step 202 is based on a priori knowledge of the simulation. As described herein, the simulation provides a numerical solution to a simulation model, which is a representation of a physical object. The simulation model is a two-dimensional (2D) model or a three-dimensional (3D) model. For example, the simulation model can be used to simulate various mechanical, thermal, thermomechanical, electromechanical, fluid flow dynamics, and / or magnetomechanical aspects of the physical object. As described herein, the simulation model can be used to simulate various mechanical, thermal, thermomechanical, electromechanical, fluid flow dynamics, and / or magnetomechanical aspects of the physical object. Figure 1 , the simulation device 110 shown in is used to perform the simulation, which is a computing cluster. In addition, the simulation is represented by a set of element equations. The element equation can be a differential equation, such as a PDE. The numerical solution of a set of differential equations can be obtained using computational simulation techniques such as FEM and FDM. As used herein, a set of simulation inputs includes one or more simulation inputs. The simulation inputs may include, but are not limited to, geometric representations (such as CAD files, image files), material properties (such as density, heat capacity, Young's modulus), boundary conditions (such as fluid velocity, solid walls of fluid channels, pressure, displacement), loading conditions (such as force, pressure, heat flux, temperature), grid parameters (such as grid cell size, grid cell element type), solver options (such as steady state, transient), output requests and / or time parameters. It should be understood that the simulation inputs (and examples thereof) provided above are only examples. The present disclosure takes into account that the simulation inputs analyzed in step 202 may include any information, data, etc. required and / or desired for running the simulation.
[0059] Optionally, in some embodiments, a respective simulation input of each of the plurality of simulations is analyzed in step 202. In these embodiments, each simulation provides a numerical solution for a respective simulation model represented by a respective set of element equations. For example, the simulation model may optionally be divided into a plurality of windows (e.g., according to physics, solution method, and / or time step size), each window represented by a different set of element equations. In these embodiments, the analysis in step 202 may be used to determine a respective set of computing resources for solving the respective simulation to obtain its numerical solution.
[0060] As mentioned above, it can be Figure 1 Step 202 performed by the resource allocator 120 shown in FIG. 1 analyzes the simulation input to determine a set of computing resources (e.g., the number of cores, the amount of RAM, etc.) required to perform the simulation. It should be understood that Figure 1The resource allocator 120 shown in can be configured to receive and / or access simulation inputs. Optionally, the group of simulation inputs is analyzed to determine a group of computing resources for performing simulation while achieving the target value of the simulation metric. Optionally, the target value is the optimal value of the simulation metric. In other words, in some embodiments, the resource allocator 120 can determine a group of computing resources required for optimizing the simulation, and the optimization simulation, for example, minimizes one or more of the cost, time and / or resources used for simulation. In other embodiments, the target value is the expected value of the simulation metric (that is, not optimal but expected). For example, the user can provide the expected cost limit and / or the expected runtime requirement. The present disclosure takes into account that the simulation metric may include but is not limited to core hour cost, simulation runtime, hardware configuration efficiency or energy cost. It should be understood that these are only example simulation metrics. The present disclosure takes into account a group of computing resources required to determine the target value of other simulation metrics. Optionally, in some embodiments, the goal is to solve multiple sets of element equations in approximately the same time (for example, to achieve the same or similar simulation runtime for multiple simulations). As described herein, the simulation is performed by a computing cluster, and the computing resources used to perform the simulation can be allocated and / or adjusted to achieve the simulation metric. This adjustment can occur dynamically, for example, during a simulation as described below. In other words, the number of processing units and / or memory allocated from the computing cluster can be increased or decreased to achieve a simulation metric.
[0061] This disclosure takes into account Figure 2 The analysis of step 202 can be performed using a model for estimating the required computing resources based on one or more known simulation inputs. Such models include, but are not limited to, machine learning models, empirical models, and analytical models. An example method for analyzing a simulation using machine learning to estimate the computational cost of a simulation is described in U.S. Published Patent Application No. 2021 / 0133378, entitled “METHODS AND SYSTEMS FOR THE ESTIMATION OF THE COMPUTATIONAL COST OF SIMULATION,” filed by OnScale, Inc. on November 6, 2020. It should be understood that the machine learning-based method described in U.S. Published Patent Application No. 2021 / 0133378 is only intended as an example of a method for performing Figure 2The present disclosure contemplates the use of other techniques to analyze a set of simulation inputs to determine a set of computing resources required to perform the simulation. For example, an empirical, semi-empirical, or analytical model may be used to estimate the resources (e.g., cores, memory, time, etc.) required for an algorithm to solve a given computing problem. The present disclosure contemplates the use of empirical, semi-empirical, or analytical models known in the art to estimate resources. As a non-limiting example, the model may be a best fit regression model. The regression model may be linear or nonlinear. The example regression model may estimate the computational cost based on simulation inputs such as mesh size (e.g., number of cells and / or vertices) and geometric parameters (e.g., surface area-to-volume ratio). It should be understood that the simulation inputs on which the example regression model is based are provided only as examples.
[0062] A set of computing resources may include, but are not limited to, a certain number of cores, a certain amount of memory (e.g., RAM), a certain number of virtual machines, and / or hardware configurations. For example, a first set of computing resources may be Figure 3 The computing resources of container A 302 are shown. Container A 302 includes a given number of computing processing units and a given amount of memory required to solve the simulation model. The present disclosure contemplates that the computing resources from Figure 1 The computing resource creation container A302 of the computing cluster shown in . Optionally, the first group of computing resources is a group of optimal computing resources for solving a set of element equations to obtain a numerical solution of the simulation while achieving the target value of the simulation indicator (such as cost, running time, energy, etc.).
[0063] Refer again Figure 2 In step 204, the simulation model is started using the first set of computing resources. For example, the first set of computing resources may be Figure 3 The computing resources of container A 302 are shown. As described herein, simulations are performed by, for example, Figure 1 The simulation is performed by the computing cluster of the simulation device 110 shown. In some embodiments, for example, without user input and / or intervention and in response to the completion of step 202, the execution of the simulation in step 204 is automatically started. Alternatively, in other embodiments, for example, with user input and / or intervention after the completion of step 202, the execution of the simulation in step 204 is manually started.
[0064] Refer again Figure 2, in step 206, at least one property of the simulation is dynamically analyzed to determine a second set of computing resources for performing the simulation. The analysis of step 206 may use a posteriori knowledge of the simulation. In addition, as described herein, the dynamic analysis of step 206 makes the automation process active rather than passive. In other words, the purpose of step 206 is to dynamically analyze one or more simulation properties while the simulation is running, and actively determine a set of computing resources for performing the simulation. The set of computing resources may be more or less than the resources currently running the simulation. Therefore, the dynamic analysis of step 206 can be used for adjustment. It should be understood that the simulation may ultimately require more or less computing resources than the computing resources determined in step 202. For example, the computational intensity of the simulation may be higher or lower than expected. This may not be determined until the simulation has been run. For example, the dynamic analysis in step 206 considers the properties of the simulation being run, while the analysis in step 202 considers the simulation input. In some embodiments, a single property of the simulation is analyzed in step 206. Alternatively, in other embodiments, multiple properties of the simulation are analyzed in step 206. As used herein, dynamic analysis is performed during the execution of the simulation. For example, the dynamic analysis of step 206 can be performed during the execution of the simulation using the first set of computing resources, i.e., while the simulation is running. The dynamic analysis of one or more properties of the simulation in step 206 can occur automatically, e.g., without user input and / or intervention and while the simulation is running.
[0065] As described above, the dynamic analysis of step 206 can be performed by Figure 1 It should be understood that Figure 1 The resource allocator 120 shown may also be configured to receive, access and / or monitor at least one attribute of the simulation. Furthermore, as used herein, attributes of a simulation may include, but are not limited to, simulation requirements (e.g., amount of memory), simulation performance characteristics (e.g., memory or processor usage), and computing power metrics. Computing power metrics may include, but are not limited to, levels of processor power usage, memory bandwidth, network bandwidth, and / or network latency levels, and may optionally be associated with expected quality of service. It should be understood that memory bandwidth is different from memory quantity, for example, memory bandwidth is the rate at which data is read from or written to memory. Memory quantity is the size of memory required for the simulation (e.g., measured in bytes). The present disclosure contemplates the use of Figure 1 to monitor one or more properties of the simulation. For example, the present disclosure contemplates Figure 1The resource allocator 120 and / or observer 150 shown in the figure can be configured to monitor the properties of the simulation, such as computing capacity indicators, for example, by running a process monitoring application. Process monitoring applications are known in the art and are therefore not described in further detail herein. Alternatively, computing capacity indicators, such as usage levels, can be monitored by measurements within the simulation program (e.g., by operating system function calls).
[0066] In addition, in some embodiments, the dynamic analysis of step 206 includes determining the difference between the required computing resources and the available computing resources. This can be achieved, for example, by determining the difference between the attributes of the simulation that can represent the required computing resources (e.g., the requirements of the monitored simulation, the simulation performance characteristics, or the computing power index) and the first group of computing resources that can represent the available computing resources. If the required computing resources exceed or are less than the available computing resources, the computing resources (e.g., the first group of computing resources) can be changed accordingly. For example, a certain number of cores, a certain number of memories (e.g., RAM), a certain number of virtual machines, and / or hardware configurations can be determined as the second group of computing resources for performing the simulation. Alternatively, a certain number of cores, a certain number of memories (e.g., RAM), a certain number of virtual machines, and / or hardware configurations can be assigned to the first group of computing resources or removed from the first group of computing resources. In other words, for example, a change (e.g., increase, decrease) of computing resources can be triggered in response to a dynamic analysis of at least one simulation attribute to meet demand and / or respond to existing conditions. Alternatively or additionally, the dynamic analysis of step 206 optionally includes comparing the simulated attributes with a threshold. It should be understood that this may not involve determining the difference between the required computing resources and the available computing resources. If the simulated attribute exceeds or is less than a threshold, the computing resources (e.g., the first set of computing resources) may be modified accordingly. The resource modification may occur automatically, e.g., without user input and / or intervention. It should be understood that the simulated attributes (and examples thereof) provided above are merely examples. The present disclosure contemplates that the simulated attributes analyzed in step 206 may include any information, data, etc. associated with the running simulation.
[0067] The second group of computing resources is different from the first group of computing resources. The second group of computing resources may include a different number of cores, memory (e.g., RAM) quantity, number of virtual machines, and / or hardware configurations from the first group of computing resources. For example, in some embodiments, the second group of computing resources includes a number, quantity, or type of computing processing units and memory that are different from the first group of computing resources. It should be understood that the first group of computing resources and the second group of computing resources may have a common specific core, memory, virtual machine, etc. In some embodiments, the second group of computing resources is greater than (e.g., greater computing power and / or more memory) the first group of computing resources. For example, in some embodiments, dynamic analysis also determines that the simulation requires more computing resources (e.g., more computing processing units and memory) than the computing resources included in the group of computing resources (e.g., the first group of computing resources determined in step 202) that currently performs the simulation. In this scenario, the current group of computing resources is insufficient, that is, the current group of computing resources cannot complete the simulation. Without intervention, the simulation will fail. In order to avoid this result before the failure occurs, additional computing resources (e.g., the second group of computing resources determined in step 206) can be used to perform the simulation. In other embodiments, the second set of computing resources is less than (e.g., less computing power and / or less memory) the first set of computing resources. For example, in some embodiments, the dynamic analysis also determines that the simulation requires fewer computing resources than the computing resources included in the set of computing resources currently performing the simulation (e.g., the first set of computing resources determined in step 202). In this scenario, the current set of computing resources is sufficient, i.e., the current set of computing resources is able to complete the simulation, but the current set of computing resources may be more expensive than expected (e.g., too much, too much computing power and / or memory, too fast, etc.). Therefore, the simulation can be performed using fewer computing resources (e.g., the second set of computing resources determined in step 206).
[0068] Optionally, the dynamic analysis of one or more attributes of the simulation determines a set of computing resources for performing the simulation while achieving a target value for the simulation metric. As described above, the target value is optionally an optimal value for the simulation metric. Alternatively, the target value is optionally an expected value for the simulation metric. The present disclosure contemplates that the simulation metric may include, but is not limited to, core hour cost, simulation run time, hardware configuration efficiency, or energy cost. It should be understood that these are merely example simulation metrics.
[0069] Example analysis methods are described above for step 202. Analysis methods include, but are not limited to, machine learning models, empirical models, and analytical models. The present disclosure contemplates that the same and / or different analysis methods may be used in step 206. Optionally, in step 206, the analysis method may include current and historical properties of the simulation (e.g., a posteriori knowledge of the simulation), which may be in addition to the simulation inputs analyzed in step 202 (e.g., a priori knowledge of the simulation). In other words, the analysis of step 206 may optionally take into account data obtained from running the simulation. As described above, the current and historical properties of the simulation obtained by running the simulation may provide additional data that may be useful in determining a set of computing resources. This additional information is unknown before the simulation begins. Optionally, one or more properties of the simulation are periodically analyzed to determine a second set of computing resources. For example, dynamic analysis of one or more properties of the simulation may be performed between time iterations. For example, in Figure 4 Such a process is shown in the flow chart of Alternatively, a dynamic analysis of one or more properties of the simulation may be performed in the frequency domain or in a quasi-static process.
[0070] The second set of computing resources can be Figure 3 Container B 304 includes a given number of computing processing units and memory required to solve the simulation model. The present disclosure contemplates that the computing resources from Figure 1 The computing resources of the computing cluster shown in are capable of creating container B 304. Optionally, the second set of computing resources is an optimal set of computing resources for solving a set of element equations to obtain a numerical solution to the simulation while achieving a target value of a simulation metric (eg, cost, runtime, energy, etc.).
[0071] Refer again Figure 3 , two different containers are shown - container A 302 and container B 304. Container A 302 can be the first set of computing resources described herein, for example, the set of computing resources that perform the simulation in step 204. This represents the current state of the simulation. Container B 304 can be the second set of computing resources described herein, for example, the set of computing resources that perform the simulation in step 208. This represents the future state of the simulation. Figure 3As shown in the figure 306 in, a new container (e.g., container B 304) can be created. The container can include a second set of computing resources different from the first set of computing resources as described herein. In some embodiments, container A includes a different number, quantity, or type of computing processing units and memory than container B. The simulation state can be transferred from the first set of computing resources (e.g., container A 302) to the second set of computing resources (e.g., container B 304) by moving or copying the simulation data from the program memory to the persistent memory in container A 302. The persistent memory representation of the simulation data can be connected to container B 304 or parsed by container B 304. For example, Figure 3 As shown, container A 302 and container B 304 can access a file system. The file system is used to temporarily store the contents of container A 302 until the contents can be transferred to container B 304. It should be understood that the file system is provided only as an example means for moving or transferring simulation data from container A 302 to container B 304. The simulation state may include, but is not limited to, mesh information, constraints and loading conditions, derived quantities, decomposition matrices, primary solutions and secondary field variables, history variables, and stored results.
[0072] Refer again Figure 2 In step 208, the simulation is performed using a second set of computing resources. For example, the second set of computing resources may be Figure 3 304 shown in FIG. 304. As described herein, the simulation is performed by, for example, Figure 1 208. The simulation is performed using the computing cluster of the simulation device 110 shown in . In some embodiments, the simulation is restarted using the second group of computing resources. In other words, the simulation is restarted from the beginning using the second group of computing resources. Alternatively, in other embodiments, the simulation is continued using the second group of computing resources. In other words, the simulation continues from the point (e.g., next iteration or frequency) where the first group of computing resources stopped simulating. In either case, the simulation using the first group of computing resources can be terminated to simulate using the second group of computing resources. The execution of the simulation in step 208 occurs automatically, e.g., without user input and / or intervention and in response to the completion of step 206.
[0073] Optionally, in some embodiments, during the execution of the simulation, the mesh is adaptively refined. As described herein, the domain of the simulation model is discretized into a finite number of elements (or points, cells) called a mesh. Adaptive refinement of the mesh includes changing the mesh density or the order of the mesh elements. Alternatively or additionally, adaptive refinement of the mesh includes changing both the mesh density and the order of the mesh elements. Adaptive mesh refinement techniques are known in the art and include, but are not limited to, h-adaptive, p-adaptive, and hp-adaptive. It should be understood that as a result of the adaptive refinement of the mesh, at least one of the domain size, the number of degrees of freedom (DoF), or the constraints is changed. And therefore, with reference to Figure 2 The described dynamic resource allocation for computing simulations may be advantageous.
[0074] Figure 5A An example is illustrated where regions 1, 2, and 3 of the simulation model are meshed using a uniform structured grid. Figure 5A The simulation model can be used, for example Figure 1 1 , 2, and 3. For example, a uniform structured grid uses a standard cell size and shape (called a voxel) to allow efficient indexing of the elements to reduce the required memory and computation time. However, this approach is limited because it complicates spatial refinement of the grid to improve accuracy and / or requires numerical techniques, which themselves may be computationally expensive. Accordingly, in some embodiments it may be desirable to use different grid densities for regions 1, 2, and 3. This is useful, for example, Figure 5B , where the simulation model is decomposed into components and a structured grid with different mesh refinements for each region 1, 2, and 3. It should be understood that for simulation purposes, information about the region boundaries can be coupled. Using the techniques described herein, different containers can be created for Figure 5B The simulation is performed in regions 1, 2, and 3 as shown in FIG. Figure 5C , where simulations for regions 1, 2, and 3 are assigned to computers 1, 2, and 3, respectively, each of which is composed of different computing resources. The creation and allocation of containers can be based on the following analysis to determine a set of computing resources used to solve each corresponding simulation model to obtain a numerical solution while achieving a simulation metric (e.g., core hour cost, simulation run time, hardware configuration efficiency, or energy cost). It should be understood that, as Figures 5A to 5C The simulation model domain shown as being spatially discretized is provided by way of example only. The present disclosure contemplates discretization of the simulation model domain by physics, solver type, time step, etc.
[0075] It should be understood that the logical operations described herein with reference to the various figures may be implemented (1) as a Figure 6 The logical operations discussed herein are described as follows: (i.e., a sequence of actions or program modules (i.e., software) implemented by a computer running on a computing device (i.e., a computing device described in the figure), (2) as interconnected machine logic circuits or circuit modules (i.e., hardware) within a computing device, and / or (3) a combination of software and hardware of a computing device. Thus, the logical operations discussed herein are not limited to any specific combination of hardware and software. The implementation is a matter of choice depending on the performance and other requirements of the computing device. Accordingly, the logical operations described herein are variously referred to as operations, structural devices, actions, or modules. These operations, structural devices, actions, and modules may be implemented in software, firmware, dedicated digital logic, and any combination thereof. It should also be understood that more or fewer operations than those shown in the figures and described herein may be performed. These operations may also be performed in a different order than described herein.
[0076] Reference Figure 6 , shows an example computing device 600, on which the methods described herein can be implemented. It should be understood that the example computing device 600 is only an example of a suitable computing environment on which the methods described herein can be implemented. Optionally, the computing device 600 can be a well-known computing system, including but not limited to a personal computer, a server, a handheld or notebook device, a multiprocessor system, a microprocessor-based system, a network personal computer (PC), a minicomputer, a mainframe computer, an embedded system and / or a distributed computing environment, including any of a plurality of the above systems or devices. A distributed computing environment allows remote computing devices connected to a communication network or other data transmission medium to perform various tasks. In a distributed computing environment, program modules, applications, and other data can be stored on local and / or remote computer storage media.
[0077] In its most basic configuration, computing device 600 typically includes at least one processing unit 606 (sometimes referred to as a computing processing unit) and system memory 604. Depending on the exact configuration and type of computing device, system memory 604 may be volatile (e.g., random access memory (RAM)), non-volatile (e.g., read-only memory (ROM), flash memory, etc.), or some combination of the two. Figure 6 600 is illustrated by dashed line 602. Processing unit 606 may be a standard programmable processor that performs the arithmetic and logic operations required for operation of computing device 600. Computing device 600 may also include a bus or other communication mechanism for passing information between various components of computing device 600.
[0078] The computing device 600 may have additional features / functionality. For example, the computing device 600 may include additional storage, such as removable storage 608 and non-removable storage 610, including but not limited to disks or optical disks or tapes. The computing device 600 may also include one or more network connections 616 that allow the device to communicate with other devices. The computing device 600 may also have one or more input devices 614, such as a keyboard, a mouse, a touch screen, etc. One or more output devices 612 may also be included, such as a display, a speaker, a printer, etc. Additional devices may be connected to the bus to facilitate data communication between the components of the computing device 600. All of these devices are well known in the art and do not need to be discussed in detail here.
[0079] Processing unit 606 can be configured to execute program codes encoded in tangible computer-readable media. Tangible computer-readable media refers to any medium that can provide data that enables computing device 600 (i.e., machine) to operate in a specific manner. Various computer-readable media can be used to provide instructions to processing unit 606 for execution. Example tangible computer-readable media may include, but are not limited to, volatile media, non-volatile media, removable media, and non-removable media implemented in any method or technology for storing information (e.g., computer-readable instructions, data structures, program modules, or other data). System memory 604, removable storage 608, and non-removable storage 610 are all examples of tangible computer storage media. Example tangible computer-readable recording media include, but are not limited to, integrated circuits (e.g., field programmable gate arrays or application-specific ICs), hard disks, optical disks, magneto-optical disks, floppy disks, magnetic tapes, holographic storage media, solid-state devices, RAM, ROM, electrically erasable program read-only memory (EEPROM), flash memory or other storage technologies, CD-ROMs, digital versatile disks (DVDs) or other optical storage, cassettes, magnetic tapes, disk storage, or other magnetic storage devices.
[0080] In one example implementation, processing unit 606 may execute program code stored in system memory 604. For example, a bus may transfer data to system memory 604, from which processing unit 606 receives and executes instructions. Data received by system memory 604 may optionally be stored on removable memory 608 or non-removable memory 610 before or after execution by processing unit 606.
[0081] It should be understood that various techniques described herein can be implemented in combination with hardware or software or in combination with their combination in appropriate circumstances. Thus, the method and apparatus of the currently disclosed subject matter, or some aspects or parts thereof, can be implemented in the form of program code (i.e., instruction) in tangible media (e.g., floppy disk, CD-ROM, hard disk drive or any other machine-readable storage medium), wherein, when the program code is loaded into a machine such as a computing device and executed by it, the machine becomes a device for implementing the currently disclosed subject matter. In the case of executing program code on a programmable computer, the computing device generally includes a processor, a processor-readable storage medium (including volatile and non-volatile memory and / or storage element), at least one input device and at least one output device. One or more programs can be implemented or used in combination with the process described in the currently disclosed subject matter, such as by using an application program interface (API), a reusable control or similar device, etc. The program can be implemented with a high-level process or an object-oriented programming language to communicate with a computer system. However, if desired, the one or more programs can be implemented in assembly language or machine language. In any case, the language can be a compiled or interpreted language, and can be combined with hardware implementation.
[0082] Although the subject matter is described above in language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are disclosed as example forms of implementing the claims.
Claims
1. A computer-implemented method for automatic resource allocation during a computational simulation, comprising: analyzing a set of simulation inputs to determine a first set of computing resources in a computing cluster for performing a simulation, wherein the first set of computing resources is configured to initiate a simulation; initiating the simulation using the first set of computing resources; dynamically analyzing at least one property of the simulation to determine a second set of computing resources in a computing cluster for performing the simulation, wherein the second set of computing resources includes a different number, quantity, or type of computing processing units or memory than the first set of computing resources, wherein the at least one property of the simulation includes a computing power metric, wherein the computing power metric includes at least one of a level of computing power usage, memory bandwidth, network bandwidth, or network latency; and The simulation is performed using the second set of computing resources.
2. The computer-implemented method of claim 1 , wherein: By dynamically analyzing at least one property of the simulation, it is determined that the simulation requires a greater number or amount of computing processing units or memory than a greater number or amount of computing processing units or memory included in the first set of computing resources.
3. The computer-implemented method of claim 1 , wherein: The set of simulation inputs includes at least one of a geometry characterization, a material property, a boundary condition, a loading condition, a mesh parameter, a solver option, a simulation output request, or a time parameter.
4. The computer-implemented method of claim 1 , wherein: The simulated at least one attribute also includes a simulated requirement or a simulated performance characteristic.
5. The computer-implemented method of claim 1 , wherein: Analyze a simulation input for each of the multiple simulations.
6. The computer-implemented method of claim 1 , wherein: Executing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources.
7. The computer-implemented method of claim 1 , wherein: Executing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources.
8. The computer-implemented method of claim 1 , further comprising: A mesh is adaptively refined during the simulation, wherein the adaptive refinement of the mesh includes changing a mesh density and / or an order of mesh elements.
9. The computer-implemented method of claim 1 , wherein: A set of simulation inputs is analyzed to determine the first set of computing resources for performing the simulation while achieving a target value for a simulation metric.
10. The computer-implemented method of claim 1, wherein: At least one property of the simulation is dynamically analyzed to determine the second set of computing resources for executing the simulation while achieving a target value for a simulation metric.
11. The computer-implemented method of claim 9, wherein: The simulation metric is core hour cost, memory requirement, simulation run time, hardware configuration efficiency, or energy cost.
12. The computer-implemented method of claim 11, wherein: The target value of the simulation metric is an optimal value of the simulation metric.
13. The computer-implemented method of claim 1 , further comprising: The state of the simulation is transferred from the first set of computing resources to the second set of computing resources.
14. The computer-implemented method of claim 13, wherein: The state of the simulation includes at least one of mesh information, constraints and loading conditions, derived quantities, decomposition matrices, primary solution and secondary field variables, history variables, or stored results.
15. The computer-implemented method of claim 1, wherein: At least one property of the simulation is periodically analyzed to determine the second set of computing resources for performing the simulation.
16. The computer-implemented method of claim 1, wherein: The simulation is characterized by a set of equations.
17. The computer-implemented method of claim 16, wherein: The set of equations represents partial differential equations.
18. The computer-implemented method of claim 1, wherein: Dynamically analyzing at least one property of the simulation to determine a second set of computing resources for performing the simulation includes comparing the at least one property of the simulation to a threshold value.
19. A system for automatic resource allocation during a computational simulation, comprising: Computing clusters; as well as a resource allocator operably coupled to the computing cluster, the resource allocator comprising a processor and a memory operably coupled to the processor, wherein the memory has computer executable instructions stored thereon, the instructions, when executed by the processor, causing the processor to perform the following operations: analyzing a set of simulation inputs to determine a first set of computing resources in the computing cluster for performing a simulation, wherein the first set of computing resources is configured to initiate the simulation; and Dynamically analyzing at least one property of the simulation to determine a second set of computing resources in the computing cluster for performing the simulation, wherein the second set of computing resources includes a different number, quantity, or type of computing processing units or memory than the first set of computing resources, wherein at least one property of the simulation includes a computing power metric, wherein the computing power metric includes at least one of a usage level of computing power, memory bandwidth, network bandwidth, or network latency, and wherein the second set of computing resources is configured to perform the simulation.
20. The system of claim 19, wherein: By dynamically analyzing at least one property of the simulation, it is determined that the simulation requires a greater number or amount of computing processing units or memory than a greater number or amount of computing processing units or memory included in the first set of computing resources.
21. The system of claim 19, wherein: The set of simulation inputs includes at least one of a geometry characterization, a material property, a boundary condition, a loading condition, a mesh parameter, a solver option, a simulation output request, or a time parameter.
22. The system of claim 19, wherein: The at least one attribute of the simulation includes a simulation requirement or a simulation performance characteristic.
23. The system of claim 19, wherein: Analyze a simulation input for each of the multiple simulations.
24. The system of claim 19, wherein: Executing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources.
25. The system of claim 19, wherein: Executing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources.
26. The system of claim 19, wherein: The memory also has computer executable instructions stored thereon that, when executed by the processor, cause the processor to adaptively refine a mesh during the simulation, wherein the adaptive refinement of the mesh includes changing a mesh density and / or an order of mesh elements.
27. The system of claim 19, wherein: A set of simulation inputs is analyzed to determine the first set of computing resources for performing the simulation while achieving a target value for a simulation metric.
28. The system of claim 19, wherein: At least one property of the simulation is dynamically analyzed to determine the second set of computing resources for executing the simulation while achieving a target value for a simulation metric.
29. The system of claim 27, wherein: The simulation metric is core hour cost, memory requirement, simulation run time, hardware configuration efficiency, or energy cost.
30. The system of claim 29, wherein: The target value of the simulation metric is an optimal value of the simulation metric.
31. The system of claim 19, wherein: The memory also has computer-executable instructions stored thereon that, when executed by the processor, cause the processor to transfer a state of the simulation from the first set of computing resources to the second set of computing resources.
32. The system of claim 31, wherein: The state of the simulation includes at least one of mesh information, constraints and loading conditions, derived quantities, decomposition matrices, primary solution and secondary field variables, history variables, or stored results.
33. The system of claim 19, wherein: At least one property of the simulation is periodically analyzed to determine the second set of computing resources for performing the simulation.
34. The system of claim 19, wherein: The simulation is characterized by a set of equations.
35. The system of claim 34, wherein: The set of equations represents partial differential equations.
36. The system of claim 19, wherein: Dynamically analyzing at least one property of the simulation to determine a second set of computing resources for performing the simulation includes comparing the at least one property of the simulation to a threshold value.
Citation Information
Patent Citations
Systems and methods for running a simulation
US20200342148A1
Methods and systems for the estimation of the computational cost of simulation
US20210133378A1
Simulation including multiple simulators
CN107784152A
Methods and systems to determine and optimize reservoir simulator performance in a cloud computing environment
WO2019203822A1