Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

TBB reporting wrong number of CPUs?

mtenthusiast
Beginner
298 Views

The company I work for recently purchased a newserver equipped with four Xeon E7-4870 processors and Windows Server 2008 R2 Enterprise SP1. When I RDP into this server the Device Managercorrectly reports the presence of 80 CPUs but the Task Manager only displays 64 CPUs. Likewise a call to tbb::task_scheduler_init::default_num_threads()returns what seems to be an incorrect value of 64 from a 64-bit test application ran within an RDP session on this server. Is there a different TBB call I could use to get the correct number of CPUs, or some other methodyou could suggestto help me track down the cause of these missing CPUs? (P.S. This problem may have started after Hyper-V was enabled on this server).

0 Kudos
1 Solution
Vladimir_P_Intel2
298 Views
hello,
Starting Hyper-V sets the limit of processor groups to 1. This caused seeing of 64 cores by all tools beside device manager.
Of course you can pass 80 as parameter to task_scheduler_init but this can cause oversubscription in this case.
--Vladimir

View solution in original post

4 Replies
RafSchietekat
Black Belt
298 Views
Did you use TBB 4.0 update 3?

"Bugs fixed:

- Not all logical processors were utilized on systems with more than
64 cores split by Windows into several processor groups."
mtenthusiast
Beginner
298 Views
Yes, I'm using the TBB 4.0 Update 3 commercial-aligned release which I obtained as the file "tbb40_297oss_win.zip".
Vladimir_P_Intel2
299 Views
hello,
Starting Hyper-V sets the limit of processor groups to 1. This caused seeing of 64 cores by all tools beside device manager.
Of course you can pass 80 as parameter to task_scheduler_init but this can cause oversubscription in this case.
--Vladimir
mtenthusiast
Beginner
298 Views
Thank you. That is the important piece of information that I was missing.
Reply