Computation Graphs for Physics Simulation Development
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing physics-based simulation software requires manual inspection and modification of complex code to incorporate new operations or models, making it difficult to grasp the overall flow and algorithm, and requiring significant manual effort for memory allocation.
Innovation Solution
The use of computation graphs, specifically directed acyclic graphs (DAGs), to develop software for physics-based simulations, allowing for automatic determination of dependency relationships, scheduling of execution, and memory allocation, thereby simplifying the development process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If manual inspection and modification of complex code is used to incorporate new operations or models, then the software can be developed, but it requires significant manual effort and makes it difficult to grasp the overall flow and algorithm
Solution Approach 1:
The patent segments the simulation software into a computation graph consisting of discrete computation units (nodes) and data dependencies (edges). Each computation unit represents a specific operation or model, allowing independent modification and incorporation of new operations without affecting the entire codebase. This segmentation enables easier adaptation while maintaining overall system structure.
Solution Approach 2:
The patent introduces a computation graph as an intermediary layer between the user's mathematical model and the underlying simulation engine. This graph structure serves as a mediator that automatically manages data flow, dependencies, and execution ordering, eliminating the need for manual code inspection and modification while incorporating new operations or models.
2Productivity
If explicit lines of code are written to produce solutions, then the simulation can be executed, but the code is not designed to reveal the series of operations except by careful inspection
Solution Approach 1:
The patent creates a visual copy or representation of the computational procedure in the form of a computation graph. This graph visually represents the sequence of operations, data dependencies, and flow of information, making the computational procedure immediately visible without requiring careful inspection of the underlying code. The visual graph serves as a documentation-free specification of the simulation logic.
3Reliability
If careful manual techniques are used to allocate memory, then the simulation software can run, but it requires a great deal of work and manual effort
Solution Approach 1:
The patent enables the computation graph to automatically manage its own memory allocation based on the data dependencies and computational requirements inherent in the graph structure. The system self-determines memory needs for each computation unit and data tensor, eliminating manual memory allocation while ensuring correctness through the structured dependency relationships in the computation graph.
Solution Approach 2:
The patent performs memory allocation planning during the graph construction and optimization phase, before actual simulation execution. By analyzing the computation graph structure in advance, the system pre-determines memory requirements, allocation strategies, and optimization opportunities, eliminating the need for manual intervention during runtime while ensuring reliable memory management.
Data Source
AI summary
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.


