Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Narrow phase *flush* multithreaded scaling is pretty bad #205

Open
RossNordby opened this issue Mar 11, 2022 · 0 comments
Open

Narrow phase *flush* multithreaded scaling is pretty bad #205

RossNordby opened this issue Mar 11, 2022 · 0 comments

Comments

@RossNordby
Copy link
Member

It's not uncommon to see multithreaded narrow phase flush underperform single threaded narrow phase flush by a bit.

Other heavy stages that dominate in single thread, like the narrow phase itself and solving, scale well and can end up being faster than narrow phase flushing as a result.

Narrow phase flushing is extremely complicated right now, and even incremental changes are nightmarish. It would be nice to rip it apart in favor of a simpler version, if such a thing exists.

For nondeterministic case, you might be able to beat the status quo by just having a worker alongside the narrow phase execution that handles all the new constraints sequentially. Determinism would still require that all the constraint add/removes are known ahead of time to avoid order dependence.

This one's pretty tough, but fairly high value if you can find a way to reasonable scaling. In chaotic scenes on very wide machines, narrow phase flush can be the most expensive part of simulation.

@RossNordby RossNordby changed the title Narrow phase flush multithreaded scaling is pretty bad Narrow phase *flush* multithreaded scaling is pretty bad Mar 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant