System config: Win 7 64bit, visual Studio 2010 Premium, dell t7500 with 2 xeon 5690 chips, 48 gig of ram. Each xeon has 6 cores, so there are 12 physical cores. With hyperthreading, there should be 24 logical cores.

In my C app:

Session.coresAvailable  =    omp_get_num_procs ( );
Session.threadsAvailable    =    omp_get_max_threads ( ) ;

The system comes back and tells me there are 12 cores and 12 threads. Shouldn't it be 24 threads?

有帮助吗?

解决方案

Converting comment to answer:

You need to enable HyperThreading in the BIOS to see all 24 threads.

其他提示

Hyperthreading is pretty darn useful for multitasking, not so much for homogeneous parallel algorithms, where all threads are executing the same instructions and need the same internal subunits. So omp might just ignore virtual threads.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top