多个cpu,多个内核和线程计数

时间:2011-11-12 04:08:38

标签: multithreading visual-c++ cpu-cores

系统配置:Win 7 64bit,visual Studio 2010 Premium,dell t7500,配备2 xeon 5690芯片,48 gig ram。每个至强有6个核心,因此有12个物理核心。对于超线程,应该有24个逻辑核心。

在我的C app中:

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

系统回来告诉我有12个核心和12个线程。不应该是24个线程吗?

2 个答案:

答案 0 :(得分:3)

将评论转换为答案:

您需要在BIOS中启用HyperThreading以查看所有24个线程。

答案 1 :(得分:0)

超线程对于多任务处理非常有用,而不是同构并行算法,其中所有线程都执行相同的指令并需要相同的内部子单元。所以omp可能会忽略虚拟线程。