bevyengine / bevyengine/bevy

Amortize cost of system parallelism

Open
#23,041 0 comments 4 reactions 0 assignees View on GitHub
A-ECS A-Tasks C-Goal C-Performance S-Needs-Design-Doc S-Waiting-on-SME X-Needs-SME
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## Goal Description

In many cases, especially in simple apps, the multi-threaded system executor can have a worse frame-time than the single-threaded executor; this happens when either (a) the costs of parallelization are high relative to the runtime of the systems being executed, or (b) the schedule being executed has few opportunities to exploit parallelism in the first place. We should detect these cases and fall back gracefully to single-threaded execution for the portion of the schedule to which they apply. One of the primary costs associated with system parallelism is the check for system-level parallelizability, and we may also want to investigate ways to do these checks less often.

## Goal Status

This is a potential [Bevy Project Goal](https://bevy.org/learn/contribute/project-information/project-goals/). Its state on the [Project Goals Board](https://github.com/orgs/bevyengine/projects/23/views/1) determines if it is Proposed, Postponed, Blocked (Approved), Inactive (Approved), Active (Approved), Completed, or Declined.

- **Staffing SMEs**: Not yet staffed
- **Working Group Link**: Working Group not yet formed
- **Design Documents**: Design documents not yet written

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.