Dynamic resource allocation for computational simulations

The automated dynamic resource allocation method addresses the inefficiencies of conventional resource allocation by inductively adjusting computing resources and mesh refinement during simulations, preventing failures and optimizing resource usage.

JP7849950B2Active Publication Date: 2026-04-22ONSCALE INC
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
ONSCALE INC
Filing Date
2021-09-07
Publication Date
2026-04-22

AI Technical Summary

Technical Problem

Conventional methods for determining computing resources for simulations are inadequate, often leading to simulation failures due to insufficient or excessive resource allocation, which cannot be dynamically adjusted during the simulation process.

Method used

An automated method and system for dynamic resource allocation during computational simulations, which analyzes simulation attributes inductively to proactively adjust computing resources, including changing resource types, capacities, or numbers, and adaptively refining the mesh, to ensure optimal resource utilization.

Benefits of technology

Prevents simulation failures and improves efficiency by dynamically reallocating resources based on real-time simulation requirements, optimizing resource usage and reducing computational costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007849950000001
    Figure 0007849950000001
  • Figure 0007849950000002
    Figure 0007849950000002
  • Figure 0007849950000003
    Figure 0007849950000003
Patent Text Reader

Abstract

To provide systems and methods for automated resource allocation during a computational simulation.SOLUTION: An example method includes analyzing a set of simulation inputs to determine a first set of computing resources for performing a simulation, and starting the simulation with 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 with the second set of computing resources. The second set of computing resources includes a different number, volume or type of computing processing units or memory than the first set of computing resources.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] [Cross - Reference to Related Applications] 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 this U.S. patent application is hereby incorporated by reference in its entirety into this specification.

Background Art

[0002] Computer - aided engineering (CAE) is the practice of simulating the representation of a physical object using computational methods. These computational methods include, but are not limited to, the finite element method (FEM) and the finite difference method (FDM). To perform a simulation 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 simultaneous equations that can be solved numerically.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Summary of the Invention

Means for Solving the Problems

[0004] This specification describes an exemplary computer-implemented method for automated resource allocation during computational simulation. This method includes analyzing a set of simulation inputs to determine a first set of computing resources to run the simulation, and then initiating the simulation using the first set of computing resources. The method further includes dynamically analyzing at least one attribute of the simulation to determine a second set of computing resources to run the simulation, and then running the simulation using the second set of computing resources. The second set of computing resources includes a different number, capacity, or type of computing processing units or memory than the first set of computing resources.

[0005] In addition, in some embodiments, a step of dynamically analyzing at least one attribute of the simulation further determines that the simulation requires more computing units or memory than are included in the first set of computing resources.

[0006] Alternatively, or in addition to the above, a set of simulation inputs may include at least one of the following: geometric representation, material properties, boundary conditions, loading conditions, mesh parameters, solver options, simulation output requests, or time parameters.

[0007] Alternatively, or in addition to the above, at least one attribute of the simulation is a simulation requirement, simulation execution characteristics, or a compute capacity indicator. The compute capacity indicator includes at least one of the following: computing power utilization level, memory bandwidth, network bandwidth, or network latency.

[0008] In some embodiments, optionally, the corresponding simulation inputs of each of the multiple simulations are analyzed.

[0009] In some embodiments, the step of running the simulation using a second set of computing resources includes automatically restarting the simulation using the second set of computing resources. Alternatively, the step of running the simulation using a second set of computing resources includes automatically continuing the simulation using the second set of computing resources.

[0010] Alternatively, or in addition, in some embodiments, this method optionally includes adaptively refining the mesh during the simulation. Adaptive mesh refinement includes changing the mesh density and / or order of the mesh elements.

[0011] Alternatively, or in addition, in some embodiments, a set of simulation inputs is analyzed to determine a first set of computing resources that will run the simulation and, in the process, achieve a target value of a simulation metric. Alternatively, or in addition, in some embodiments, at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources that will run the simulation and, in the process, achieve a target value of a simulation metric. This simulation metric may be core time cost, memory requirements, simulation runtime, hardware configuration efficiency, or energy cost. In addition, the target value of the simulation metric is the optimal value of the simulation metric.

[0012] Alternatively, or in addition to that, the first set of computing resources and the second set of computing resources each include at least one of a plurality of virtual machines or hardware configurations.

[0013] Alternatively, or in addition, in some embodiments, this method optionally includes transferring the simulation state from a first set of computing resources to a second set of computing resources. This simulation state includes at least one of the following: mesh information, constraints and load conditions, derived quantities, factorized matrices, primary solution and secondary field variables, history variables, or stored results.

[0014] Alternatively, or in addition, in some embodiments, at least one attribute of the simulation is periodically analyzed to determine a second set of computing resources to run the simulation.

[0015] Alternatively, or in addition to that, this simulation is represented by a set of equations. Optionally, this set of equations represents a partial differential equation (PDE).

[0016] Alternatively, or in addition, in some embodiments, this dynamic analysis optionally includes comparing at least one attribute of the simulation to a threshold.

[0017] Alternatively, or in addition, in some embodiments, a first set of computing resources and a second set of computing resources constitute a computing cluster.

[0018] This specification describes an exemplary system for automated resource allocation during computational simulation. This system includes a computational cluster and a resource allocator operably coupled to the computational cluster. The resource allocator includes a processor and memory operably coupled to the processor, where computer executable instructions are stored. The resource allocator is configured to analyze a set of simulation inputs to determine a first set of computational resources to run the simulation within the computational cluster. The first set of computational resources is configured to start the simulation. In addition, the resource allocator is configured to dynamically analyze at least one attribute of the simulation to determine a second set of computational resources to run the simulation within the computational cluster. The second set of computational resources is configured to run the simulation. The second set of computational resources includes a different number, capacity, or type of computing units or memory than the first set of computational resources.

[0019] In addition, in some embodiments, the step of dynamically analyzing at least one attribute of the simulation further determines that the simulation requires more computational processing units or memory than that included in the computational processing units or memory of the first set of computational resources.

[0020] Alternatively or in addition, a set of simulation inputs includes at least one of a geometric representation, material properties, boundary conditions, loading conditions, mesh parameters, solver options, simulation output requirements, or time parameters.

[0021] Alternatively or in addition, at least one attribute of the simulation is a simulation requirement, a simulation execution characteristic, or a computational power metric. The computational power metric includes at least one of a level of computational power usage, a memory bandwidth, a network bandwidth, or a network latency.

[0022] Optionally, in some embodiments, the corresponding simulation inputs of each of the plurality of simulations are analyzed.

[0023] In some embodiments, the step of performing the simulation using the second set of computational resources includes automatically restarting the simulation using the second set of computational resources. Alternatively, the step of performing the simulation using the second set of computational resources includes automatically continuing the simulation using the second set of computational resources.

[0024] Alternatively or in addition, in some embodiments, the resource allocator is optionally configured to adaptively subdivide the mesh during the simulation. The adaptive subdivision of the mesh includes changing the mesh density and / or order of the mesh elements.

[0025] Instead of or in addition to, in some embodiments, a set of simulation inputs is analyzed to perform a simulation and, during that, determine a first set of computing resources that achieve a target value of a simulation metric. Instead of or in addition to, in some embodiments, at least one attribute of the simulation is dynamically analyzed to perform a simulation and, during that, determine a second set of computing resources that achieve a target value of a simulation metric. This simulation metric is a core time cost, a memory requirement, a simulation runtime, an efficiency of a hardware configuration, or an energy cost. In addition, the target value of the simulation metric is an optimal value of the simulation metric.

[0026] Instead of or in addition to, the first set of computing resources and the second set of computing resources each include at least one of a plurality of virtual machines or a hardware configuration.

[0027] Instead of or in addition to, in some embodiments, a resource allocator is optionally configured to transfer a state of a simulation from the first set of computing resources to the second set of computing resources. This state of the simulation includes at least one of mesh information, constraint and load conditions, derived quantities, factored matrices, primary and secondary field variables, history variables, or stored results.

[0028] Instead of or in addition to, in some embodiments, at least one attribute of the simulation is periodically analyzed to determine a second set of computing resources to perform the simulation.

[0029] Instead of or in addition to, this simulation is represented by a set of equations. Optionally, this set of equations represents a partial differential equation (PDE).

[0030] Alternatively, or in addition, in some embodiments, this dynamic analysis optionally includes comparing at least one attribute of the simulation to a threshold.

[0031] Alternatively, or in addition, in some embodiments, a first set of computing resources and a second set of computing resources constitute a computing cluster.

[0032] It should be understood that the above subject matter can also be implemented in computer-controlled devices, computer processes, computing systems, or products, such as computer-readable storage media.

[0033] Other systems, methods, features and / or advantages will be apparent or may become apparent to those skilled in the art who have examined the following drawings and detailed description. All such additional systems, methods, features and / or advantages are intended to be included in this description and protected by the appended patent claims.

[0034] The components in the drawings are not depicted at a uniform scale relative to each other. Throughout the multiple drawings, the same reference numerals represent corresponding parts. [Brief explanation of the drawing]

[0035] [Figure 1] This is a block diagram of an exemplary computing environment according to one embodiment described herein. [Figure 2] This flowchart illustrates an exemplary operation of automated resource allocation for computational simulation according to one embodiment described herein. [Figure 3] This figure shows containerization according to one embodiment described herein. [Figure 4]This flowchart illustrates an exemplary operation of the dynamic analysis of the simulation at each iterative time step according to one embodiment described herein. [Figure 5A] This figure shows an exemplary simulation model in which regions 1, 2, and 3 are meshed with a uniform structured grid. [Figure 5B] This figure shows an exemplary simulation model in which regions 1, 2, and 3 are meshed with structured grids having different mesh densities. [Figure 5C] This figure shows the containerization process used to solve the simulation model in Figure 5B. [Figure 6] This is a block diagram of an exemplary computing device. [Modes for carrying out the invention]

[0036] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art. Methods and materials similar to, or equivalent to, those described herein may be used in the practice or testing of the present disclosure. When used herein and in the appended claims, the singular forms “one” and “it” include plural nouns unless the context makes it clear otherwise. When used herein, the terms “equipped with” and its variations are used as synonyms for the terms “contain” and its variations, and these terms are open, non-restrictive terms. As used herein, the terms “optional” or “optionally” mean that the following feature, event, or situation may or may not occur, and that the description includes instances in which such feature, event, or situation occurs and instances in which such feature, event, or situation does not occur. In this specification, ranges may be expressed as “approximately” from one particular value and / or “approximately” to another particular value. When such ranges are presented, one aspect includes the range from that one specific value and / or to another specific value. Similarly, when a value is expressed as an approximation by the use of the preceding word "approximately," it is understood that that specific value forms another aspect. It is also understood that the endpoint of each range is significant not only in relation to the other endpoint, but also independently of the other endpoint.

[0037] This specification describes systems and methods for automated resource allocation during computational simulations (also referred to herein as “numerical simulations” or “simulations”). As described herein, these systems and methods improve the robustness and efficiency of simulations when computing solutions to virtual models of physical objects or physical phenomena using parallel computing resources. Using conventional techniques, it is difficult to deductively determine the set of computing resources required for a simulation, in particular, the optimal and / or minimum set of computing resources. In other words, deductive knowledge about the simulation alone may be insufficient to accurately determine the computing resources required for the simulation. After the simulation has started, and during the simulation, additional information that was not known at the start is gathered. For example, using conventional techniques, a user might estimate that “X” gigabytes (GB) of memory is required for a simulation. The simulation starts with the available “X” GB of memory, but due to factors that are not known or cannot be known at the start, it actually requires more than “X” GB of memory to complete. This can cause the simulation to fail before it finishes. Instead, the simulation may actually require less than "X" GB of memory, which unnecessarily ties up computing resources. Conventional techniques do not automatically detect or respond to such simulation conditions.

[0038] The systems and methods described herein address the above challenges, for example, by automating resource allocation. For instance, the systems and methods described herein improve robustness by avoiding simulation failures due to improper resource allocation. By performing dynamic analysis while the simulation is running, computational resource decisions are updated using inductive knowledge about the simulation. As a result, the systems and methods described herein can prevent simulation failures before they occur (i.e., the systems and methods described herein are proactive and do not simply react to detected failures). The systems and methods described herein further improve efficiency by compensating for over-allocation of computational resources. The systems and methods described herein further take into account changes in required resources during the simulation. These capabilities represent an improvement over manually determining resource requirements, reallocating resources, and restarting the simulation.

[0039] The simulation method is not limited to but includes FEM and FDM. For example, the concept of finite element analysis (FEA) is generally well understood in the art and involves discretizing a virtual model into multiple nodes, each node containing spatial information and further including connections to surrounding nodes by differential equations (e.g., partial differential equations (PDEs)) that describe the physical phenomenon being computed for that node. These nodes, and the differential equations describing them, form a matrix representing the virtual model, and this matrix, in whole or in part, is transmitted to one or a group of processing units to compute a solution at a given time or frequency (or time range or set of frequencies).

[0040] Optionally, a flexible cloud computing system (e.g., the computing environment shown in Figure 1) can dynamically determine and select the optimal amount of computing resources (e.g., number of computing cores, memory capacity, hardware type, etc.) to optimally solve a single simulation or several separate simulations. In a cloud computing environment, the optimal amount of computing resources to allocate to a single simulation or a set of simulations can be determined based on different criteria, for example. Minimizing core time costs, Minimizing total simulation time, To maximize the packing efficiency for a given hardware configuration, and / or Minimizing the energy used You can choose based on this.

[0041] As described later, dynamic changes to the resources used for simulations in a cloud computing environment can include increasing or decreasing the resources (cores, RAM, etc.) allocated to a single container, or starting a new container of a different size and mapping the simulation state from the original container to the new container, with the simulation continuing or restarting using this new container.

[0042] Referring next to Figure 1, an exemplary computing environment is shown. The computing environment shown in Figure 1 can be used to perform the dynamic resource allocation method for computational simulation described herein. This environment includes a simulation device 110, a resource allocator 120, an originating device 140, and an observer 150. It should be understood that the environment shown in Figure 1 is shown only as an example. This disclosure anticipates that the dynamic resource allocation method for computational simulation described herein can be performed using a computing environment having more or fewer components than those shown in Figure 1, and / or having components in a different configuration than those shown in Figure 1. It should be understood that the logical operations described herein can be performed by one or more of the devices shown in Figure 1, which are shown only as examples of computing environments.

[0043] The simulation device 110, resource allocator 120, transmitter 140, and observer 150 are operably coupled to one or more networks 130. This disclosure anticipates that network 130 is any suitable communication network. Network 130 may be networks similar to one another in one or more respects. Alternatively, or in addition to that, network 130 may be networks different from one another in one or more respects. Network 130 may include, and includes parts or combinations of, local area networks (LANs), wireless local area networks (WLANs), wide area networks (WANs), metropolitan area networks (MANs), virtual private networks (VPNs), etc. In addition, the simulation device 110, resource allocator 120, transmitter 140, and observer 150 are each coupled to one or more networks 130 through one or more communication links. This disclosure anticipates that these communication links are any suitable communication links. For example, a communication link can be implemented by any medium that facilitates data exchange, and this communication link includes, but is not limited to, wired, wireless, and optical links. Illustrative communication links include, but are not limited to, LANs, WANs, MANs, Ethernet, the Internet, or any other wired or wireless links, such as WiFi, WiMAX, 3G, 4G, or 5G.

[0044] The simulation apparatus 110 can be a computing cluster, for example, a computing cluster consisting of multiple nodes 115 (e.g., nodes 115A, 115B, and 115C). As used herein, a computing cluster is a plurality of interconnected computing resources accessible across a network, having 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 devices, databases, software, etc.) linked to a user (e.g., a transmitter 140) via a communication network (e.g., the Internet) or other data transmission medium. Cloud-based computing is well known in the art and will therefore not be described in further detail herein. In other embodiments, the computing cluster is a local computing cluster (e.g., a computing asset linked via a LAN), in which resources are linked to a user (e.g., a transmitter 140) via a communication network (e.g., a LAN) or other data transmission medium. Each node 115 may consist of one or more computing devices, such as the computing device 600 shown in Figure 6. It should be understood that the number of nodes 115 in Figure 1 (i.e., 3) is presented 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 may be configured to run computational simulations (e.g., FEM, FDM, or other computational simulation techniques). An exemplary system and method for running a simulation using a cloud-based computing cluster is 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.

[0045] The resource allocator 120 may be a computing device such as the computing device 600 shown in Figure 6. The resource allocator 120 may be configured to run application 122. Application 122 may include instructions for performing one or more of the automated resource allocation operations for computational simulations described with respect to Figure 2. For example, the resource allocator 120 may be configured to receive and / or access simulation-related information (e.g., information including, but not limited to, simulation inputs, simulation attributes, and / or computing power metrics described herein), analyze such simulation-related information, and / or allocate computing resources based on such analysis. Such simulation-related information may be received from a monitoring device or process. Optionally, the resource allocator 120 may be configured to monitor simulation-related information (e.g., information including, but not limited to, simulation inputs, simulation attributes, and / or computing power metrics described herein). The resource allocator 120 may communicate with network 130 through network interface 124. Optionally, the network interface 124 can encrypt data and then transmit such data over the network 130. This disclosure anticipates that any type of encryption may be used.

[0046] The transmitter 140 can be a computing device such as the computing device 600 shown in Figure 6. The transmitter 140 can be a user-related computing device such as a personal computer, desktop computer, laptop, or tablet. The transmitter 140 can be configured to run application 142. Application 142 can be an engineering application (e.g., a CAD application), or any other type of application including modeling, modeling data, simulation, and / or simulation data. The transmitter 140 can request that a computational simulation be performed by the simulation device 110. The transmitter 140 can communicate with network 130 through network interface 144. Optionally, network interface 144 can encrypt data and then transmit such data over network 130. This disclosure anticipates that any type of encryption may be used.

[0047] Observer 150 may be a computing device such as the computing device 600 shown in Figure 6. Observer 150 may be configured to run application 152. Application 152 may include instructions for performing one or more of the automated resource allocation operations for computational simulations described with respect to Figure 2. For example, observer 150 may be configured to run a process monitoring application. In other words, observer 150 may be configured to monitor information related to the simulation (e.g., information including, but not limited to, simulation attributes and / or computing power metrics described herein). Observer 150 may communicate with network 130 through network interface 154. Optionally, network interface 154 may encrypt data and then transmit such data over network 130. This may include, but not limited to, transmitting the monitored information to resource allocator 120, which may be configured to analyze the monitored information. This disclosure anticipates that any type of encryption may be used.

[0048] Referring to Figure 2, a flowchart illustrating exemplary operations of automated resource allocation for computational simulation is shown. The exemplary operations shown in Figure 2 can be performed in the computational environment shown in Figure 1. For example, in some embodiments, these exemplary operations can be performed by the resource allocator 120 and / or simulation device 110 shown in Figure 1. Optionally, in some embodiments, these exemplary operations can be performed by the resource allocator 120, observer 150 and / or simulation device 110 shown in Figure 1. As will be discussed later, one or more of the operations shown in Figure 2 can be performed automatically, for example, without user input and / or intervention. For example, when the simulation starts (e.g., step 204 in Figure 2), a dynamic analysis is performed (e.g., step 206 in Figure 2), and computational resources are adjusted according to the results of this dynamic analysis (e.g., step 208 in Figure 2). In other words, no user input or intervention is required to adjust the computational resources. Optionally, in some embodiments, all of the operations shown in Figure 2 can be performed automatically, for example, without user input and / or intervention.

[0049] In step 202, a set of simulation inputs is analyzed to determine a first set of computing resources to run the simulation. The analysis in step 202 is based on deductive knowledge about the simulation. As described herein, this simulation provides a numerical solution for a simulation model, which is a representation of a physical object. This simulation model can be a two-dimensional (2D) or three-dimensional (3D) model. For example, this simulation model can be used to simulate various mechanical, thermal, thermomechanical, electromechanical, fluid flow dynamics, and / or magnetomechanical aspects of a physical object. As described herein, this simulation can be run using the simulation apparatus 110 shown in Figure 1, which is a computing cluster. In addition, this simulation is represented by a set of element equations. These element equations can be differential equations such as PDEs. Numerical solutions for 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. Simulation inputs may include, but are not limited to, geometric representations (e.g., CAD files, image files), material properties (e.g., density, heat capacity, Young's modulus), boundary conditions (e.g., fluid velocity, solid walls of fluid passages, pressure, displacement), load conditions (e.g., force, pressure, heat flux, temperature), mesh parameters (e.g., mesh cell size, mesh cell element type), solver options (e.g., steady state, transient state), output requests, and / or time parameters. It should be understood that the simulation inputs (and their examples) shown above are merely examples. This disclosure anticipates that the simulation inputs analyzed in step 202 may include information, data, etc., necessary for and / or desired to run the simulation.

[0050] Optionally, in some embodiments, step 202 analyzes the corresponding simulation inputs of each of the multiple simulations. In these embodiments, each simulation provides a numerical solution for the corresponding simulation model represented by its corresponding set of element equations. For example, optionally, the simulation model can be divided into a number of windows (e.g., by physical properties, solution method, and / or time step size), each represented by a different set of element equations. In these embodiments, the analysis in step 202 can be used to determine the corresponding set of computational resources needed to solve each corresponding simulation to arrive at a numerical solution for the simulation.

[0051] As described above, step 202, which can be performed by the resource allocator 120 shown in Figure 1, analyzes the simulation inputs to determine a set of computing resources (e.g., number of cores, RAM capacity, etc.) required to run the simulation. It should be understood that the resource allocator 120 shown in Figure 1 can be configured to receive and / or access the simulation inputs. Optionally, a set of simulation inputs is analyzed to determine a set of computing resources required to run the simulation and achieve a target value for the simulation metric during that time. Optionally, this target value is the optimal value for the simulation metric. In other words, in some embodiments, the resource allocator 120 can determine a set of computing resources required to optimize the simulation, e.g., a set of computing resources required to minimize one or more of the costs, time, and / or resources used for the simulation. In other embodiments, this target value is a desired value (i.e., a value that is not optimal but is desired) for the simulation metric. For example, the user can provide a desired cost limit and / or desired runtime requirements. This disclosure anticipates that simulation metrics may include, but are not limited to, core time cost, simulation runtime, hardware configuration efficiency, or energy cost. It should be understood that these are merely examples of simulation metrics. This disclosure anticipates determining a set of computational resources required to achieve target values ​​for other simulation metrics. Optionally, in some embodiments, the objective is to solve multiple sets of element equations in approximately the same amount of time (e.g., to achieve the same or similar simulation runtime for multiple simulations). As described herein, simulations are run by a computing cluster, and the computational resources running the simulations can be allocated and / or coordinated to achieve the simulation metrics.This adjustment can be performed dynamically, for example, during the simulation, as described later. In other words, the number of processing units and / or memory allocated from the computing cluster can be increased or decreased to achieve the simulation metrics.

[0052] This disclosure anticipates that the analysis in step 202 of Figure 2 can be performed using a model that estimates the necessary computational 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 exemplary method of analyzing a simulation using machine learning to estimate the computational cost of the simulation is described in U.S. Patent Application Publication 2021 / 0133378, titled “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. Patent Application Publication 2021 / 0133378 is shown only as an example of a technique for performing the analysis in step 202 of Figure 2. This disclosure anticipates that other techniques may be used to analyze a set of simulation inputs to determine a set of computational resources required to run the simulation. For example, the resources (e.g., cores, memory, time, etc.) required by an algorithm to solve a given computational problem can be estimated using empirical, semi-empirical, or analytical models. This disclosure anticipates the use of empirical, semi-empirical, or analytical models known in the art to estimate resources. As a non-limiting example, this model may be a best-fit regression model. The regression model may be linear or nonlinear. One exemplary regression model may estimate 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 these simulation inputs on which this exemplary regression model relies are shown as examples only.

[0053] A set of computing resources may include, but is not limited to, multiple cores, a certain capacity of memory (e.g., RAM), multiple virtual machines, and / or hardware configurations. For example, the first set of computing resources could be the computing resources of container A 302 shown in Figure 3. Container A 302 includes a given number of computing units and a given capacity of memory required to solve the simulation model. This disclosure anticipates that container A 302 can be generated using computing resources from the computing cluster shown in Figure 1. Optionally, the first set of computing resources is the optimal set of computing resources for solving a set of element equations to arrive at a numerical solution to the simulation, while simultaneously achieving target values ​​for simulation metrics (e.g., cost, runtime, energy, etc.).

[0054] Referring again to Figure 2, in step 204, the simulation model is started using a first set of computing resources. For example, the first set of computing resources may be the computing resources of container A 302 shown in Figure 3. As described herein, this simulation is performed by a computing cluster such as the simulation device 110 shown in Figure 1. In some embodiments, the execution of the simulation in step 204 is started automatically, for example without user input and / or intervention, in response to the completion of step 202. Alternatively, in other embodiments, the execution of the simulation in step 204 is started manually, for example by user input and / or intervention after the completion of step 202.

[0055] Referring again to Figure 2, in step 206, at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources to run the simulation. The analysis in step 206 can use inductive knowledge about the simulation. In addition, as described herein, the dynamic analysis in step 206 makes this automated process proactive rather than reactive. In other words, the purpose of step 206 is to dynamically analyze the simulation attributes while the simulation is running and proactively determine a set of computing resources to run the simulation. This set of computing resources may be more or less than the set of computing resources currently running the simulation. Thus, adjustments can be made using the dynamic analysis in step 206. Finally, it should be understood that the simulation may require more or fewer computing resources than those determined in step 202. For example, the simulation may be more or less computationally intensive than expected. This may not be known until the simulation is running. For example, the dynamic analysis in step 206 considers the attributes of the running simulation, whereas the analysis in step 202 considers the simulation inputs. In some embodiments, step 206 analyzes a single attribute of the simulation. Instead, in other embodiments, step 206 analyzes multiple attributes of the simulation. When used herein, the dynamic analysis is performed during the execution of the simulation. For example, the dynamic analysis in step 206 can be performed during the execution of the simulation using a first set of computing resources, i.e., while the simulation is running. The dynamic analysis of the simulation attributes in step 206 can be performed automatically, for example, without user input and / or intervention, while the simulation is running.

[0056] As described above, the dynamic analysis in step 206 can be performed by the resource allocator 120 shown in Figure 1. It should be understood that the resource allocator 120 shown in Figure 1 can also be configured to receive, access, and / or monitor at least one attribute of the simulation. In addition, when used herein, the attributes of the simulation may include, but are not limited to, simulation requirements (e.g., memory capacity), simulation execution characteristics (e.g., memory or processor usage), and computational capability metrics. Computational capability metrics may include, but are not limited to, levels of processor capacity utilization, memory bandwidth, network bandwidth, and / or network latency, and optionally, computational capability metrics may relate to expected quality of service. It should be understood that memory bandwidth is different from memory capacity. For example, memory bandwidth is the rate at which data is read from or written to memory. Memory capacity is the size of memory required for the simulation (e.g., size indicated in bytes). This disclosure anticipates monitoring one or more attributes of the simulation using the computing environment shown in Figure 1. For example, this disclosure anticipates that the resource allocator 120 and / or observer 150 shown in Figure 1 can be configured to monitor simulation attributes, such as computing power metrics, by, for example, running a process monitoring application. Process monitoring applications are known in the art and will therefore not be described in further detail herein. Alternatively, computing power metrics, such as usage levels, can also be monitored by measuring them within the simulation program, for example, by calling operating system functions.

[0057] In addition, in some embodiments, the dynamic analysis in step 206 includes determining the difference between the required computing resources and the available computing resources. This can be done, for example, by determining the difference between a simulation attribute that may represent the required computing resources (e.g., simulation requirements under monitoring, simulation execution characteristics, or computing power metrics) and a first set of computing resources that may represent the available computing resources. If the required computing resources are greater or less than the available computing resources, the computing resources (e.g., the first set of computing resources) can be modified accordingly. For example, multiple cores, a certain capacity of memory (e.g., RAM), multiple virtual machines, and / or hardware configurations can be determined as a second set of computing resources for running the simulation. Optionally, multiple cores, a certain capacity of memory (e.g., RAM), multiple virtual machines, and / or hardware configurations can be allocated or removed from the first set of computing resources. In other words, changes to computing resources (e.g., increases, decreases) can be made in response to a dynamic analysis of at least one simulation attribute, for example, to meet requirements and / or to accommodate existing conditions. Alternatively, or in addition to the above, the dynamic analysis in step 206 optionally includes comparing the simulation attributes to thresholds. It should be understood that this may not include determining the difference between the required computing resources and the available computing resources. If the simulation attributes are greater than or less than the thresholds, the computing resources (e.g., a first set of computing resources) may be adjusted accordingly. Resource adjustments may be performed automatically, for example, without user input and / or intervention. It should be understood that the simulation attributes (and their examples) shown above are merely examples. This disclosure anticipates that the simulation attributes analyzed in step 206 may include any information, data, etc., related to the simulation during its run.

[0058] The second set of computing resources differs from the first set of computing resources. The second set of computing resources may include a different number of cores, a different capacity of memory (e.g., RAM), a different number of virtual machines, and / or a different hardware configuration than the first set of computing resources. For example, in some embodiments, the second set of computing resources includes a different number, capacity, or type of computing processing units and memory than the first set of computing resources. It should be understood that the first and second sets of computing resources may share certain cores, memory, virtual machines, etc. In some embodiments, the second set of computing resources is larger than the first set of computing resources (e.g., has greater computing power and / or greater memory). For example, in some embodiments, dynamic analysis further determines that the simulation requires more computing resources (e.g., computer processing units and memory) than the set of computing resources currently running the simulation (e.g., the first set of computing resources determined in step 202). In this scenario, the current set of computing resources is insufficient. In other words, the current set of computing resources is insufficient to complete the simulation. Without intervention, the simulation will fail. Therefore, to avoid this failure before it occurs, additional computing resources (e.g., a second set of computing resources determined in step 206) can be used to run the simulation. In other embodiments, the second set of computing resources is smaller than the first set of computing resources (e.g., has less computing power and / or less memory). For example, in some embodiments, dynamic analysis further determines that the simulation requires fewer computing resources than those contained in the set of computing resources currently running 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; that is, the current set of computing resources can complete the simulation.However, the current set of resources may be more expensive than desired (for example, too many resources, too much computing power and / or too much memory, too fast, etc.). Therefore, the simulation can be run using fewer computing resources (for example, a second set of computing resources determined in step 206).

[0059] Optionally, a dynamic analysis of the simulation attributes determines a set of computing resources to run the simulation and achieve target values ​​for the simulation metrics during that time. As stated above, optionally, this target value is the optimal value for the simulation metrics. Alternatively, optionally, this target value is the desired value for the simulation metrics. This disclosure anticipates that the simulation metrics may include, but are not limited to, core time cost, simulation runtime, hardware configuration efficiency, or energy cost. It should be understood that these are merely examples of simulation metrics.

[0060] An exemplary analysis method is described above with respect to step 202. The analysis method includes, but is not limited to, machine learning models, empirical models, and analytical models. This disclosure anticipates 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 attributes of the simulation (e.g., inductive knowledge about the simulation), which may be included in addition to the simulation inputs analyzed in step 202 (e.g., deductive knowledge about the simulation). In other words, optionally, the analysis in step 206 may take into account data obtained by running the simulation. As described above, current and historical attributes of the simulation obtained by running the simulation may provide additional data that may be useful in determining a set of computing resources. Such additional information is not known before the start of the simulation. Optionally, the attributes of the simulation are periodically analyzed to determine a second set of computing resources. For example, a dynamic analysis of the attributes of the simulation may be performed between time iterations. Such a process is shown, for example, in the flowchart of Figure 4. Alternatively, dynamic analysis of the simulation attributes can be performed in the frequency domain or as a quasi-static process.

[0061] A second set of computing resources can be the computing resources of container B 304 shown in Figure 3. Container B 304 includes a given number of computing units and a given capacity of memory required to solve the simulation model. This disclosure anticipates that container B 304 can be generated using computing resources from the computing cluster shown in Figure 1. Optionally, the second set of computing resources is the optimal set of computing resources for solving a set of element equations to arrive at a numerical solution to the simulation, while simultaneously achieving target values ​​for simulation metrics (e.g., cost, runtime, energy, etc.).

[0062] Referring again to Figure 3, two different containers are shown, namely container A 302 and container B 304. Container A 302 can be a first set of computing resources described herein, for example, a set of computing resources that run the simulation in step 204. Container A 302 represents the current state of the simulation. Container B 304 can be a second set of computing resources described herein, for example, a set of computing resources that run the simulation in step 208. Container B 304 represents a future state of the simulation. A new container (e.g., container B 304) can be created as indicated by reference numeral 306 in Figure 3. This container may contain a second set of computing resources described herein. The second set of computing resources is different from the first set of computing resources. In some embodiments, container A contains a different number, capacity, or type of computing processing units and memory than container B. The simulation state can be transferred from a first set of computing resources (e.g., container A 302) to a second set of computing resources (e.g., container B 304) by moving or copying the simulation data from program memory to persistent memory in container A 302. The persistent memory representation of the simulation data can be connected to container B 304 or analyzed by container B 304. For example, as shown in Figure 3, containers A 302 and B 304 can access a file system. This file system is used to temporarily store the contents of container A 302 until they can be transferred to container B 304. It should be understood that the file system is shown only as an example of a means of 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 load conditions, derived quantities, factored matrices, primary solution and secondary field variables, historical variables, and stored results.

[0063] Referring again to Figure 2, in step 208, the simulation is run using a second set of computing resources. For example, the second set of computing resources may be the computing resources of container B 304 shown in Figure 3. As described herein, this simulation is run by a computing cluster such as the simulation device 110 shown in Figure 1. In some embodiments, this simulation is restarted using the second set of computing resources. In other words, the simulation is restarted from the beginning using the second set of computing resources. Alternatively, in other embodiments, the execution of this simulation is continued using the second set of computing resources. In other words, the simulation is continued, for example, for the next time iteration or frequency, starting from where the first set of computing resources stopped the simulation. In any case, the simulation using the first set of computing resources can be terminated and the simulation using the second set of computing resources can be run. The execution of the simulation in step 208 is performed automatically, for example, without user input and / or intervention, in response to the completion of step 206.

[0064] Optionally, in some embodiments, the mesh is adaptively subdivided during the execution of the simulation. As described herein, the domain of the simulation model is discretized into a finite number of elements (or points, cells) called a mesh. Adaptive mesh subdivision includes changing the mesh density or the order of mesh elements. Alternatively, or in addition to that, adaptive mesh subdivision includes changing both the mesh density and the order of mesh elements. Adaptive mesh subdivision methods are known in the art and include, but are not limited to, the h-method (h-adaptivity), p-method, and hp-method. It should be understood that as a result of adaptive mesh subdivision, at least one of the domain size, degrees of freedom (DoF), or constraints is changed. Consequently, dynamic resource allocation for computational simulations, as described with respect to Figure 2, may be advantageous.

[0065] Figure 5A shows an example where regions 1, 2, and 3 of a simulation model are meshed with a uniform structured grid. This disclosure anticipates that the simulation model in Figure 5A can be run using one or more simulation devices, such as the simulation device 110 shown in Figure 1. For example, a uniform structured grid allows for efficient indexing of elements using standard cell sizes and shapes (known as voxels) to reduce the required memory and computation time. However, this approach has limitations, as it requires numerical techniques that can be complex and / or computationally expensive in themselves, for spatially refining the mesh to improve accuracy. Therefore, in some embodiments, it may be desirable to use different mesh densities for regions 1, 2, and 3. This is shown, for example, in Figure 5B, where the simulation model is decomposed into components, and different mesh-refined structured grid meshes are applied to each of regions 1, 2, and 3. It should be understood that for the purposes of the simulation, information regarding the region boundaries can be combined. Different containers can be generated using the techniques described herein to run the simulation for regions 1, 2, and 3 shown in Figure 5B. This is illustrated in Figure 5C, where simulations for domains 1, 2, and 3 are assigned to computers 1, 2, and 3, respectively, each consisting of different computing resources. Based on this analysis, corresponding containers can be generated and assigned to solve the corresponding simulation models to reach numerical solutions and determine a set of computing resources to achieve simulation metrics (e.g., core time cost, simulation runtime, hardware configuration efficiency, or energy cost) in the process. It should be understood that spatial discretization of simulation model domains, as shown in Figures 5A-5C, is presented only as an example. This disclosure anticipates discretization of simulation model domains based on physical properties, solution type, time step, etc.

[0066] It should be understood that the logic operations described herein with respect to various figures can be implemented (1) as a series of computer-implemented acts or program modules (i.e., software) running on a computing device (e.g., the computing device shown in Figure 6), (2) as interconnected mechanical logic circuits or circuit modules (i.e., hardware) within the computing device, and / or (3) as a combination of software and hardware in the computing device. Therefore, the logic operations discussed herein are not limited to any particular combination of hardware and software. This embodiment is a matter of choice depending on the performance and other requirements of the computing device. Accordingly, the logic operations described herein are referred to in various ways, such as arithmetic operations, structural devices, acts, or modules. These arithmetic operations, structural devices, acts, and modules can 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 can be performed. These operations can also be performed in an order different from the order described herein.

[0067] Referring to Figure 6, an exemplary computing device 600 capable of carrying out the methods described herein is shown. It should be understood that the exemplary computing device 600 is merely one example of a suitable computing environment capable of carrying out the methods described herein. Optionally, the computing device 600 may be, but is not limited to, a personal computer, a server, a handheld or laptop 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, as well as any well-known computing system including multiple 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 may be stored in local computer storage media and / or remote computer storage media.

[0068] In its most basic configuration, the computing device 600 typically includes at least one processing unit 606 (sometimes also called a computing processing unit) and system memory 604. Depending on the exact configuration and type of the computing device, the system memory 604 can be volatile memory (e.g., random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.), or a combination of volatile and non-volatile memory. This most basic configuration is shown by the dashed line 602 in Figure 6. The processing unit 606 can be a standard programmable processor that performs the arithmetic and logical operations necessary for the operation of the computing device 600. The computing device 600 may further include buses or other communication mechanisms for transmitting information between its various components.

[0069] The computing device 600 may have additional features / functions. For example, the computing device 600 may include additional storage devices such as removable storage devices 608 and non-removable storage devices 610, which may include, but are not limited to, magnetic or optical disks or tapes. The computing device 600 may further include a network connection 616 that enables the computing device 600 to communicate with other devices. The computing device 600 may further have input devices 614 such as a keyboard, mouse, or touchscreen. Output devices 612 such as a display, speaker, or printer may also be included. These additional devices may be connected to a bus to facilitate the transfer of data 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 herein.

[0070] The processing unit 606 may be configured to execute program code encoded in a tangible computer-readable medium. A tangible computer-readable medium refers to any medium capable of providing data that causes the computing device 600 (i.e., the machine) to operate in a particular manner. Instructions to be executed can be provided to the processing unit 606 using a variety of computer-readable media. Exemplary tangible computer-readable media may include, but are not limited to, volatile, non-volatile, removable, and non-removable media implemented in any way or by any technique for storing information such as computer-readable instructions, data structures, program modules, or other data. System memory 604, removable storage device 608, and non-removable storage device 610 are all examples of tangible computer storage media. Exemplary 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 programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROMs, digital versatile disks (DVDs) or other optical storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices.

[0071] In one exemplary embodiment, a processing unit 606 can execute program code stored in system memory 604. For example, a bus can carry data to system memory 604, and the processing unit 606 receives instructions from system memory 604 and executes those instructions. Optionally, the data received by system memory 604 can be stored on a removable storage device 608 or a non-removable storage device 610 before or after execution by the processing unit 606.

[0072] It should be understood that the various techniques described herein can be implemented in relation to hardware or software, or, where appropriate, in relation to a combination of hardware and software. Therefore, the methods and apparatus of the subject matter of this disclosure, or certain aspects or parts thereof, may take the form of program code (i.e., instructions) implemented in a tangible medium such as a floppy diskette, CD-ROM, hard drive, or any other machine-readable storage medium, and when such program code is loaded into a machine such as a computer and executed by such a machine, that machine becomes an apparatus for implementing the subject matter of this disclosure. When program code is executed on a programmable computer, the computer generally includes a processor, a storage medium (including volatile and non-volatile memory and / or storage elements) that the processor can read, at least one input device, and at least one output device. One or more programs can implement or utilize the processes described in relation to the subject matter of this disclosure by, for example, using an application programming interface (API), a reusable control mechanism, etc. Such programs may be implemented in a high-level procedural language or an object-oriented programming language to communicate with a computer system. However, if desired, this program can also be implemented in assembly language or machine language. In either case, this language can be compiled or interpreted, and can be combined with hardware embodiments.

[0073] While the subject matter of this disclosure has been described using terminology specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as exemplary forms of implementing the claims. [Aspect 1] A computer implementation method for automated resource allocation during computational simulation, To determine the first set of computational resources to run the simulation, we analyze a set of simulation inputs, The simulation is started using the first set of computing resources, To determine a second set of computing resources for running the simulation, dynamically analyze at least one attribute of the simulation, wherein the second set of computing resources includes computing units or memory of a different number, capacity, or type than the first set of computing resources. A computer implementation method comprising performing the simulation using the second set of computing resources. [Aspect 2] The computer implementation method according to embodiment 1, wherein dynamically analyzing at least one attribute of the simulation further determines that the simulation requires more computing units or memory than is included in the first set of computing resources. [Aspect 3] The computer implementation method according to embodiment 1 or 2, wherein the set of simulation inputs includes at least one of geometric representation, material properties, boundary conditions, load conditions, mesh parameters, solver options, simulation output requests, or time parameters. [Aspect 4] A computer implementation method according to any one of embodiments 1 to 3, wherein the at least one attribute of the simulation includes simulation requirements, simulation execution characteristics, or computing power indicators. [Aspect 5] The computer implementation method according to embodiment 4, wherein the computing power indicator includes at least one of the computing power usage level, memory bandwidth, network bandwidth, or network latency. [Aspect 6] A computer implementation method according to any one of embodiments 1 to 5, wherein the respective simulation inputs are analyzed for each of the multiple simulations. [Aspect 7] A computer implementation method according to any one of embodiments 1 to 6, wherein performing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources. [Aspect 8] A computer implementation method according to any one of embodiments 1 to 6, wherein performing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources. [Aspect 9] A computer implementation method according to any one of embodiments 1 to 8, further comprising adaptively refining the mesh during the simulation, wherein the adaptive refining of the mesh includes changing the mesh density and / or order of the mesh elements. [Aspect 10] A computer implementation method according to any one of embodiments 1 to 9, wherein the set of simulation inputs is analyzed to determine the first set of computational resources for running the simulation while achieving a target value of the simulation metric. [Aspect 11] A computer implementation method according to any one of embodiments 1 to 9, wherein at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources for running the simulation while achieving a target value of the simulation metric. [Aspect 12] The computer implementation method according to embodiment 10 or 11, wherein the simulation metric is core time cost, memory requirements, simulation runtime, hardware configuration efficiency, or energy cost. [Aspect 13] The computer implementation method according to embodiment 12, wherein the target value of the simulation metric is the optimal value of the simulation metric. [Aspect 14] A computer implementation method according to any one of embodiments 1 to 13, wherein the first set of computing resources and the second set of computing resources each include at least one of a plurality of virtual machines or hardware configurations. [Aspect 15] A computer implementation method according to any one of embodiments 1 to 14, further comprising transferring the state of the simulation from a first set of computing resources to a second set of computing resources. [Aspect 16] The computer implementation method according to aspect 15, wherein the state of the simulation includes at least one of mesh information, constraints and load conditions, derived quantities, factored matrices, primary solution and secondary field variables, historical variables, or stored results. [Aspect 17] A computer implementation method according to any one of embodiments 1 to 16, wherein at least one attribute of the simulation is periodically analyzed in order to determine a second set of computing resources for performing the simulation. [Aspect 18] The computer implementation method according to any one of embodiments 1 to 17, wherein the simulation is expressed by a set of equations. [Aspect 19] The computer implementation method according to embodiment 18, wherein the aforementioned set of equations represents a partial differential equation (PDE). [Aspect 20] A computer implementation method according to any one of embodiments 1 to 19, wherein dynamically analyzing at least one attribute of the simulation in order to determine a second set of computing resources to perform the simulation includes comparing the at least one attribute of the simulation with a threshold. [Aspect 21] A computer implementation method according to any one of embodiments 1 to 20, wherein the first set of computing resources and the second set of computing resources are parts of a computing cluster. [Aspect 22] A system for automated resource allocation during computational simulations, Computation clusters and The computing cluster comprises a resource allocator operably coupled to the aforementioned computing cluster, The resource allocator comprises a processor and memory operably coupled to the processor, where computer executable instructions are stored in the memory, and when the computer executable instructions are executed by the processor, the processor analyzes a set of simulation inputs to determine a second set of computing resources to perform the simulation, wherein the first set of computing resources is configured to start the simulation. To determine a second set of computing resources within the computing cluster to run the simulation, the system dynamically analyzes at least one attribute of the simulation. A system in which the second set of computing resources includes a different number, capacity, or type of computing processing units or memory than the first set of computing resources, and the second set of computing resources is configured to perform the simulation. [Aspect 23] The system according to embodiment 22, wherein dynamically analyzing at least one attribute of the simulation further determines that the simulation requires more computing units or memory than is included in the first set of computing resources. [Aspect 24] The system according to embodiment 22 or 23, wherein the set of simulation inputs includes at least one of geometric representation, material properties, boundary conditions, load conditions, mesh parameters, solver options, simulation output requests, or time parameters. [Pattern 25] The system according to any one of embodiments 22 to 24, wherein the at least one attribute of the simulation includes simulation requirements, simulation execution characteristics, or computing power metrics. [Aspect 26] The system according to embodiment 25, wherein the computing power indicator includes at least one of computing power usage level, memory bandwidth, network bandwidth, or network latency. [Aspect 27] A system according to any one of embodiments 22 to 26, wherein the respective simulation inputs are analyzed for each of multiple simulations. [Aspect 28] The system according to any one of embodiments 22 to 27, wherein performing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources. [Aspect 29] The system according to any one of embodiments 22 to 27, wherein performing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources. [Aspect 30] A system according to any one of embodiments 22 to 29, wherein further computer-executable instructions are stored in the memory, and when the further computer-executable instructions are executed by the processor, the processor causes the processor to perform adaptive subdivision of the mesh during the simulation, the adaptive subdivision of the mesh including changing the mesh density and / or order of the mesh elements. [Aspect 31] The system according to any one of embodiments 22 to 30, wherein the simulation inputs are analyzed to determine a first set of computing resources to perform the simulation and, in the process, achieve a target value of the simulation metric. [Aspect 32] A system according to any one of embodiments 22 to 30, wherein the simulation is performed and, in the process, the at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources to achieve a target value of the simulation metric. [Aspect 33] The system according to embodiment 31 or 32, wherein the simulation metric is core time cost, memory requirements, simulation runtime, hardware configuration efficiency, or energy cost. [Aspect 34] The system according to embodiment 33, wherein the target value of the simulation metric is the optimal value of the simulation metric. [Aspect 35] The system according to any one of embodiments 22 to 34, wherein the first set of computing resources and the second set of computing resources each include at least one of a plurality of virtual machines or hardware configurations. [Aspect 36] The system according to any one of embodiments 22 to 35, wherein further computer-executable instructions are stored in the memory, and when the further computer-executable instructions are executed by the processor, the processor is instructed to transfer the state of the simulation from the first set of computing resources to the second set of computing resources. [Aspect 37] The system according to embodiment 36, wherein the state of the simulation includes at least one of mesh information, constraints and load conditions, derived quantities, factored matrices, primary solution and secondary field variables, historical variables, or stored results. [Aspect 38] The system according to any one of embodiments 22 to 37, wherein at least one attribute of the simulation is periodically analyzed in order to determine a second set of computing resources for performing the simulation. [Aspect 39] The system according to any one of embodiments 22 to 38, wherein the simulation is represented by a set of equations. [Aspect 40] The system according to embodiment 39, wherein the aforementioned set of equations represents a partial differential equation (PDE). [Aspect 41] A system according to any one of embodiments 22 to 40, wherein dynamically analyzing at least one attribute of the simulation in order to determine a second set of computing resources to perform the simulation includes comparing the at least one attribute of the simulation with a threshold. [Aspect 42] The system according to any one of embodiments 22 to 41, wherein the first set of computing resources and the second set of computing resources are parts of the computing cluster. [Explanation of Symbols]

[0074] 110 Simulation device 115A Node 115B Node 115C Node 120 Resource Allocators 122 Applications 124 Network Interfaces 130 Networks 140 Transmitter 142 applications 144 Network Interfaces 150 Observers 152 Applications 154 Network Interfaces 600 Computing equipment 602 The most basic configuration of a computing device 604 System Memory 606 Processing Units 608 Removable Storage Device 610 Non-removable storage device 612 Output device 614 Input device 615 Network Connection

Claims

1. A computer implementation method for automated resource allocation during computational simulation, To determine the first set of computing resources to run the simulation, we analyze a set of simulation inputs, The simulation is started using the first set of computing resources, To determine a second set of computing resources for running the simulation, dynamically analyze at least one attribute of the simulation during its execution, wherein the second set of computing resources includes computing units or memory of a different number, capacity, or type than the first set of computing resources. A computer implementation method comprising performing the simulation using a second set of computing resources modified from a first set of computing resources in accordance with the results of a dynamic analysis.

2. The computer implementation method according to claim 1, further comprising dynamically analyzing the at least one attribute of the simulation to determine that the simulation requires more computing units or memory than is included in the first set of computing resources.

3. The computer implementation method according to claim 1 or 2, wherein the set of simulation inputs includes at least one of geometric representation, material properties, boundary conditions, load conditions, mesh parameters, solver options, simulation output requests, or time parameters.

4. The computer implementation method according to any one of claims 1 to 3, wherein the at least one attribute of the simulation includes simulation requirements, simulation execution characteristics, or computing power indicators.

5. The computer implementation method according to claim 4, wherein the computing power indicator includes at least one of computing power usage level, memory bandwidth, network bandwidth, or network latency.

6. A computer implementation method according to any one of claims 1 to 5, wherein the respective simulation inputs are analyzed for each of the multiple simulations.

7. The computer implementation method according to any one of claims 1 to 6, wherein performing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources.

8. The computer implementation method according to any one of claims 1 to 6, wherein performing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources.

9. A computer-aided method according to any one of claims 1 to 8, further comprising adaptively refining the mesh during the simulation, wherein the adaptive refining of the mesh includes changing the mesh density and / or order of the mesh elements.

10. A computer implementation method according to any one of claims 1 to 9, wherein the set of simulation inputs is analyzed to determine the first set of computing resources for running the simulation while achieving a target value of the simulation metric.

11. A computer implementation method according to any one of claims 1 to 9, wherein at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources for running the simulation while achieving a target value of the simulation metric.

12. The computer implementation method according to claim 10 or 11, wherein the simulation metric is core time cost, memory requirements, simulation runtime, hardware configuration efficiency, or energy cost.

13. The computer implementation method according to claim 12, wherein the target value of the simulation metric is the optimal value of the simulation metric.

14. The computer implementation method according to any one of claims 1 to 13, wherein the first set of computing resources and the second set of computing resources each include at least one of a plurality of virtual machines or hardware configurations.

15. The computer implementation method according to any one of claims 1 to 14, further comprising transferring the state of the simulation from the first set of computing resources to the second set of computing resources.

16. The computer implementation method according to claim 15, wherein the state of the simulation includes at least one of mesh information, constraints and load conditions, derived quantities, factored matrices, historical variables, or stored results.

17. A computer implementation method according to any one of claims 1 to 16, wherein at least one attribute of the simulation is periodically analyzed in order to determine a second set of computing resources for performing the simulation.

18. The computer implementation method according to any one of claims 1 to 17, wherein the simulation is represented by a set of equations.

19. The computer implementation method according to claim 18, wherein the set of equations represents a partial differential equation (PDE).

20. A computer implementation method according to any one of claims 1 to 19, wherein dynamically analyzing at least one attribute of the simulation in order to determine a second set of computing resources to perform the simulation includes comparing the at least one attribute of the simulation with a threshold.

21. The computer implementation method according to any one of claims 1 to 20, wherein the first set of computing resources and the second set of computing resources are parts of a computing cluster.

22. A system for automated resource allocation during computational simulations, Computation clusters and The computing cluster comprises a resource allocator operably coupled to the aforementioned computing cluster, The resource allocator comprises a processor and memory operably coupled to the processor, wherein computer executable instructions are stored in the memory, and when the computer executable instructions are executed by the processor, the processor receives Analyzing a set of simulation inputs to determine a first set of computing resources to run the simulation, wherein the first set of computing resources is configured to start the simulation, In order to determine a second set of computing resources to run the simulation within the computing cluster, the system is to dynamically analyze at least one attribute of the simulation during its execution. The second set of computing resources includes a number, capacity, or type of computing processing units or memory that differs from the first set of computing resources. A system in which a second set of computing resources, modified from the first set of computing resources in response to the results of a dynamic analysis, is configured to perform the simulation.

23. The system according to claim 22, wherein dynamically analyzing at least one attribute of the simulation further determines that the simulation requires more computing units or memory than is included in the first set of computing resources.

24. The system according to claim 22 or 23, wherein the set of simulation inputs includes at least one of geometric representation, material properties, boundary conditions, load conditions, mesh parameters, solver options, simulation output requests, or time parameters.

25. The system according to any one of claims 22 to 24, wherein the at least one attribute of the simulation includes simulation requirements, simulation execution characteristics, or computing power metrics.

26. The system according to claim 25, wherein the computing power indicator includes at least one of computing power usage level, memory bandwidth, network bandwidth, or network latency.

27. The system according to any one of claims 22 to 26, wherein for each of the multiple simulations, the respective simulation inputs are analyzed.

28. The system according to any one of claims 22 to 27, wherein performing the simulation using the second set of computing resources includes automatically restarting the simulation using the second set of computing resources.

29. The system according to any one of claims 22 to 27, wherein performing the simulation using the second set of computing resources includes automatically continuing the simulation using the second set of computing resources.

30. The system according to any one of claims 22 to 29, wherein further computer-executable instructions are stored in the memory, and when the further computer-executable instructions are executed by the processor, the processor causes the processor to perform adaptive subdivision of the mesh during the simulation, wherein the adaptive subdivision of the mesh includes changing the mesh density and / or order of the mesh elements.

31. The system according to any one of claims 22 to 30, wherein the simulation is performed and the set of simulation inputs is analyzed to determine the first set of computing resources to achieve a target value of the simulation metric during the performance.

32. The system according to any one of claims 22 to 30, wherein the simulation is performed and during the process, the at least one attribute of the simulation is dynamically analyzed to determine a second set of computing resources to achieve a target value of the simulation metric.

33. The system according to claim 31 or 32, wherein the simulation metric is core time cost, memory requirements, simulation runtime, hardware configuration efficiency, or energy cost.

34. The system according to claim 33, wherein the target value of the simulation metric is the optimal value of the simulation metric.

35. The system according to any one of claims 22 to 34, wherein the first set of computing resources and the second set of computing resources each include at least one of a plurality of virtual machines or hardware configurations.

36. The system according to any one of claims 22 to 35, wherein further computer-executable instructions are stored in the memory, and when the further computer-executable instructions are executed by the processor, the processor is instructed to transfer the state of the simulation from the first set of computing resources to the second set of computing resources.

37. The system according to claim 36, wherein the state of the simulation includes at least one of mesh information, constraints and load conditions, derived quantities, factorized matrices, historical variables, or stored results.

38. The system according to any one of claims 22 to 37, wherein at least one attribute of the simulation is periodically analyzed in order to determine a second set of computing resources for performing the simulation.

39. The system according to any one of claims 22 to 38, wherein the simulation is represented by a set of equations.

40. The system according to claim 39, wherein the set of equations represents a partial differential equation (PDE).

41. The system according to any one of claims 22 to 40, wherein dynamically analyzing at least one attribute of the simulation in order to determine a second set of computing resources to perform the simulation includes comparing the at least one attribute of the simulation with a threshold.

42. The system according to any one of claims 22 to 41, wherein the first set of computing resources and the second set of computing resources are parts of the computing cluster.

Citation Information

Patent Citations

  • Method and device for simulating and analyzing viscoelastic fluid flowing through and ejecting from channel having boundary between first fluid flowing through channel and second fluid, and medium or waveform containing set of instructions for directing simulation and analysis to instruction-executing device

    JP2006318481A

  • Process migration method, computer system operating to execute process migration, intermediate calculation resources in such system, and method of selecting calculation resources before partitioning for process migration method

    JP2014235734A

  • Distribution synchronous processing system and method

    JP2018032346A

  • Systems and methods for running a simulation

    US20200342148A1

  • Methods and systems for the estimation of the computational cost of simulation

    US20210133378A1