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

Investigate why TBB sometimes has terrible CPU utilization. #14

Open
Mysticial opened this issue Oct 14, 2018 · 1 comment
Open

Investigate why TBB sometimes has terrible CPU utilization. #14

Mysticial opened this issue Oct 14, 2018 · 1 comment

Comments

@Mysticial
Copy link
Owner

On a system with a lot of cores, run:

  • Golden Ratio (doesn't really matter what constant you choose, Golden Ratio make repro faster)
  • 10 billion digits
  • Disable hexadecimal digits (not necessary, but makes repro faster)
  • Disable output verify (not necessary, but make repro faster)
  • Parallel Framework: TBB

With Task Manager opened, observe the CPU when it gets to the base conversion. Compare it with Push Pool, and Cilk Plus. TBB has absolutely terrible CPU utilization whereas Push Pool and Cilk Plus are fine.

Questions:

  • Why is TBB so much worse than Cilk Plus? This matters because Cilk Plus is going away due to deprecation.
  • What other environments are affected?
  • Can this be fixed? Or is it fundamental to the design of TBB?

Confirmed Repro on:

  • Core i7 5960X (16 vcores, task decomposition = 16)
  • Core i9 7900X (20 vcores, task decomposition = 40)
  • Core i9 7940X (28 vcores, task decomposition = 56)
@Mysticial
Copy link
Owner Author

Mysticial commented Aug 18, 2024

6 years later and this remains a problem with the latest TBB. Though it isn't as bad and it it's inconsistent. Sometimes it's fast, other times it's slow. It varies heavily from run to run.

image

On the other hand, The latest TBB seems to handle multiple processor groups better than Cilk Plus.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant