Systems using computation graphs for flow solvers
AssigneeAnsys, Inc.
InventorsGeoffrey Alexander Main, Raunak Deepak Borker
Life of this patent
Estimating the term…
Abstract
An embodiment of a method can create a directed acyclic graph (DAG) from a programmer specified set of computation units to solve, in a computer program, physics based simulations of physical systems, and the DAG can be used to analyze and debug the computer program. In this method, the computer program can be created by automatically determining dependency relationships in the set of computation units and automatically schedule their execution. The method can also automatically allocate memory for the computation units.
Claims23
A method for creating software that performs physics simulations of physical systems, the method comprising:
- defining a set of computation units for simulating a physical system, each computation unit comprising one or more variables associated with characteristics of the physical system, and the one or more variables comprising a set of input and output variables;
- automatically determining a set of dependency relationships among the computation units based upon the variables in all of the computation units;
- automatically generating a representation of a schedule of execution for the computation units based on their determined dependencies;
- creating an executable representation of the computation units with an execution order specified by the schedule, the executable representation being stored as part of the software.
A non-transitory machine readable medium storing executable program instructions which when executed by a data processing system cause the data processing system to perform a method for creating software that performs physics simulations of physical systems, the method comprising:
- receiving a set of computation units for simulating a physical system, each computation unit comprising one or more variables associated with characteristics of the physical system, and the one or more variables comprising a set of input and output variables;
- automatically determining a set of dependency relationships among the computation units based upon the variables in all of the computation units;
- automatically generating a representation of a schedule of execution for the computation units based on their determined dependencies;
- creating an executable representation of the computation units with an execution order specified by the schedule, the executable representation being stored as part of the software.
A non-transitory machine readable medium storing executable program instructions which when executed by a data processing system cause the data processing system to perform a method, the method comprising:
- loading a computer program created by (1) defining a set of computation units for simulating a physical system, each computation unit comprising one or more variables associated with characteristics of the physical system and the one or more variables comprising a set of input and output variables, (2) automatically determining a set of dependency relationships among the computation units based upon the variables in all of the computation units, and (3) automatically generating a representation of a schedule of execution for the computation units based on their determined dependencies;
- executing computations in the computation units in the order specified by the schedule, the executing occurring in multiple iterations, each iteration representing an execution once through the schedule without any cycles through the computation units, the executing to derive solutions in the simulation until a converged final solution is produced.
Dependencies are inferred from the claim text.