# US 10,484,249 B1 · Dynamic distribution of simulation load

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,484,249 B1
- Document ID: US10484249B1
- Status: Granted
- Kind: B1
- Application number: 14/859,186
- Filed: 2015-09-18
- Granted: 2019-11-19
- Earliest claimed: 2015-09-18
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Pablo Puo Hen Cheng; Jesse Aaron Van Beurden; Rosen Ognyanov Baklov; Igor Gorelik
- Web page: https://patentgrep.com/patent/US10484249B1

## CPC

- A63F 13/352: involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- H04L 41/0893: Assignment of logical groups to network elements
- H04L 43/0817: by checking functioning
- H04L 43/16: Threshold monitoring
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques for distributing processing loads in a multi-node computing environment are described. Ownership of objects of a simulation scenario is assigned to a plurality of computing nodes based on a processing load distribution associated with the simulation scenario. The simulation scenario is executed on the plurality of computing nodes, and processing loads on the computing nodes are monitored. When a processing load of one of the computing nodes has reached a threshold, objects allocated to the one node are reassigned based on properties of a subset of the objects of the simulation scenario. The properties are based on a measure of interaction between the objects in the subset.

## Claims

### Claim 1

A system, comprising:
one or more processors; and
one or more memories having stored thereon computer-executable instructions that, upon execution by the one or more processors, cause the system to perform operations comprising:
identifying objects in a simulation scenario;
assigning ownership of the objects to a first compute node;
determining that a processing load of the first compute node has reached a threshold value;
determining how many clusters of the objects are owned by the first compute node;
re-clustering the objects, wherein a second quantity of clusters is determined that exceeds a first quantity of one or more clusters owned by the first compute node;
forming the second quantity of clusters, wherein the forming the second quantity of clusters comprises using the second quantity as a selected quantity of cluster centroids for the second quantity of clusters; and
reassigning the ownership of the objects to a plurality of compute nodes including the first compute node and a second compute node, wherein the reassigning causes at least one cluster included in the second quantity of clusters to be owned by the second compute node.

### Claim 2 (depends on 1)

The system of claim 1, wherein the clusters of the objects owned by the first compute node comprise simulation islands.

### Claim 3 (depends on 1)

The system of claim 1, wherein the simulation scenario comprises a video game and the objects comprise characters, projectiles, vehicles, or structures.

### Claim 4 (depends on 1)

The system of claim 1, wherein the forming the second quantity of clusters further comprises assigning the objects to the selected quantity of cluster centroids.

### Claim 5

A method comprising:
assigning ownership of objects of a simulation scenario to a first compute node;
identifying that a processing load of the first compute node has reached a threshold;
determining how many clusters of the objects are owned by the first compute node;
re-clustering the objects, wherein a second quantity of clusters is determined that exceeds a first quantity of one or more clusters owned by the first compute node;
forming the second quantity of clusters, wherein the forming the second quantity of clusters comprises using the second quantity as a selected quantity of cluster centroids for the second quantity of clusters; and
reassigning the ownership of the objects to a plurality of compute nodes including the first compute node and a second compute node, wherein the reassigning causes at least one cluster included in the second quantity of clusters to be owned by the second compute node.

### Claim 6 (depends on 5)

The method of claim 5, wherein the processing load comprises a percentage of a maximum processing capacity.

### Claim 7 (depends on 5)

The method of claim 5, wherein the forming the second quantity of clusters is based at least in part on performance of a clustering algorithm.

### Claim 8 (depends on 5)

The method of claim 5, wherein the reassigning is based at least in part on determining that other computing nodes have not reached a threshold level.

### Claim 9 (depends on 5)

The method of claim 5, wherein the ownership of the objects are reassigned to the plurality of compute nodes based at least in part on spatial distribution of the objects in the simulation scenario.

### Claim 10 (depends on 7)

The method of claim 7, wherein said clustering algorithm is configured to cluster the objects based on similarity between clustered objects.

### Claim 11 (depends on 5)

The method of claim 5, wherein the simulation scenario comprises a video game and the objects comprise characters, projectiles, vehicles, or structures.

### Claim 12 (depends on 5)

The method of claim 5, wherein the forming the second quantity of clusters further comprises assigning the objects to the selected quantity of cluster centroids.

### Claim 13

A non-transitory computer-readable medium having stored thereon a set of instructions, which when performed by one or more processors, causes the one or more processors to perform operations comprising:
assigning ownership of objects of a simulation scenario to a first compute node;
identifying that a processing load of the first compute node has reached a threshold;
determining how many clusters of the objects are owned by the first compute node;
re-clustering the objects, wherein a second quantity of clusters is determined that exceeds a first quantity of one or more clusters owned by the first compute node;
forming the second quantity of clusters, wherein the forming the second quantity of clusters comprises using the second quantity as a selected quantity of cluster centroids for the second quantity of clusters; and
reassigning the ownership of the objects to a plurality of compute nodes including the first compute node and a second compute node, wherein the reassigning causes at least one cluster included in the second quantity of clusters to be owned by the second compute node.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the processing load comprises a percentage of a maximum processing capacity.

### Claim 15 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the reassigning is based at least in part on performance of a clustering algorithm.

### Claim 16 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the forming the second quantity of clusters is based at least in part on determining that other compute nodes have not reached a threshold level.

### Claim 17 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the ownership of the objects are assigned to the plurality of compute nodes based at least in part on spatial distribution of the objects in the simulation scenario.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein said clustering algorithm is configured to cluster the objects based on similarity between clustered objects.

### Claim 19 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the simulation scenario comprises a video game and the objects comprise characters, projectiles, vehicles, or structures.

### Claim 20 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the forming the second quantity of clusters further comprises assigning the objects to the selected quantity of cluster centroids.
