Open
Description
What problem does this solve or what need does it fill?
Whether or not a system uses parallelism, such as via Query::par_iter
, is extremely important information for optimizing performance.
Multiple heavily parallel systems should not be run beside each other at the same time.
Possible solutions
- Manually mark a system as parallel via system config, as a type of performance hint for schedulers.
- Require a special
ParQuery
system param to accessQuery::par_iter
- Have a virtual unit type resource
ParallelAccess
, and require the user pass in&mut ParallelAccess
intoQuery::par_iter
to get it to compile.
I think that 3 is simply a better form of 2. We may want scheduler performance hints in some form anyways though, even if we don't end up using it for parallelism.
Additional context
Prompted by @ItsDoot: https://discord.com/channels/691052431525675048/749335865876021248/1385332129269022790
Metadata
Metadata
Assignees
Labels
Entities, components, systems, and eventsA new feature, making something new possibleA change motivated by improving speed, memory usage or compile timesThis issue or PR is particularly complex, and needs an approved design doc before it can be mergedThere is active debate or serious implications around merging this PR