Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
Assignees
NoblisNoblis is a nonprofit research and technical organization supporting federal missions in defense, health, environment, and security. Emphasizing applied sciences, engineering, digital transformation, artificial intelligence, cloud, and cybersecurity, Noblis provides objective solutions for government agencies confronting complex operational and scientific challenges.
Noblis is a nonprofit research and technical organization supporting federal missions in defense, health, environment, and security. Emphasizing applied sciences, engineering, digital transformation, artificial intelligence, cloud, and cybersecurity, Noblis provides objective solutions for government agencies confronting complex operational and scientific challenges.
Abstract
Disclosed herein are systems and methods for simulating an environment over a plurality of intervals of in-simulation time by using a two-part data structure to represent agents or entities in the simulation. A system may create and store a data structure representing an agent in the simulation, wherein a first portion of the data structure represents characteristics of the agent at a present interval and a second portion of data structure represents characteristics of the agent at a future interval of the simulation. Also disclosed herein are systems and methods for executing a multi-agent simulation using multiple processing threads. A system may group a plurality of agents in the simulated environment into subsets associated respectively with nodes of the simulated environment, assign the subsets to respective separate processors of the system, and execute the simulation using separate processing threads associated respectively with the separate processors.
Core Innovation
The disclosed invention provides a simulation system for executing a simulation comprising a plurality of agents in a simulated environment using multiple processing threads. The system groups the plurality of agents into a first subset and a second subset, where the first subset is associated with a first node of the simulated environment and the second subset is associated with a second node of the simulated environment. Each subset is assigned to a different processor, and the simulation is executed with a first processing thread associated with the first processor to perform calculations for agents in the first subset and a second processing thread associated with the second processor to perform calculations for agents in the second subset.
The invention improves the scalability of multi-agent and cyber-physical systems simulation by using a two-part time-interval data structure per agent with a first interval representation and a second interval representation. A read-only state and a write-only state are represented using an indicator/flag, with a flip configuration or an optional copy of data to avoid per-interval allocation and deallocation and reduce memory deallocation and garbage collection overhead.
In addition, the invention supports near-linear scalability by using a flat query-time in-memory database and/or in-process database to keep query time at a flat query processing time, described as about 1 millisecond. It further uses node-based processing resource allocation by grouping agents into subsets mapped to simulation nodes, including inflection points, and assigning each subset to a dedicated processing thread to reduce thread contention. Shared variables are updated across threads using atomic increment and decrement operations rather than locking, including atomic interlock behavior.
The disclosure further aligns method and system implementations with multi-threaded simulation partitioning and the time-interval agent representation, including program execution on processors and thread-based calculations for subsets associated with nodes. It describes refining behavior tied to inflection points, such as conditional reassignment when agents do not reach inflection points during a current interval and shared-variable update control across processors.
Claims Coverage
The independent claim set described in the provided relevant claims includes three independent claim families: clm-00001, clm-00009, and clm-00010. Across these, the core coverage consists of grouping agents into first and second subsets associated with first and second nodes, assigning those subsets to first and second processors, and executing each subset’s calculations in separate processing threads; additional families refine node and inflection-point association and thread-safe concurrency behavior.
Node-based agent subset partitioning and parallel thread execution
group a plurality of agents in the simulated environment into a first subset and a second subset, wherein the first subset is associated with a first node of the simulated environment and the second subset is associated with a second node of the simulated environment; assign the first subset to a first processor of the two or more processors; assign the second subset to a second processor of the two or more processors; execute the simulation using a first processing thread associated with the first processor to perform calculations for agents in the first subset and using a second processing thread associated with the second processor to perform calculations for agents in the second subset.
Node-associated inflection-point based grouping
The system further comprises a first and a second node, and agents are grouped into a first subset and a second subset based on which inflection point they are associated with.
Query-based grouping of agents to nodes
The system further groups a plurality of agents into two subsets by running a first query to find agents associated with a first node for the first subset and a second query to find agents associated with the second node for the second subset.
Inflection-point constrained simulated speed during an interval
programs determine that an agent would reach more than one inflection point in a current interval of the simulation and reduce the agent’s simulated speed so it reaches only one inflection point during that interval.
Conditional reassignment to a projected next inflection point
when determining an agent will not reach any inflection points during the current simulation interval, assigns the agent to a subset associated with a projected next inflection point.
Atomic increment/decrement without locking for shared variables across threads
programs generate and store data for a shared variable tied to a first and second node and increment this variable concurrently by each processor without locking and without blocking access by the other processor.
Overall, the claim coverage centers on executing a simulation by partitioning agents into node-associated first and second subsets, assigning subsets to respective processors, and calculating in parallel using corresponding processing threads. Dependent refinements further specify node and inflection-point-based grouping, query-based identification of agents per node, inflection-point-based conditional behavior during intervals, and concurrent updates to shared variables using atomic increment and decrement operations without locking.
Stated Advantages
Near-linear scalability with data size (described in the provided content).
Flat query time using a flat query-time in-memory/in-process database (described as about 1 millisecond).
Reduced per-interval allocation and deallocation and reduced memory deallocation and garbage collection overhead via a two-part time-interval data structure and indicator/flip or optional copy.
Reduced thread contention by assigning agent subsets to dedicated processing threads mapped from node-based processing resource allocation.
Avoids locking for shared variable updates by using atomic increment and decrement operations across threads.
Documented Applications
Not explicitly described in patent.
Interested in licensing this patent?
