CPU核心与线程的区别

7

我的MacBookPro使用BootCamp运行,搭载有Intel i7-640M处理器,该处理器具有2个核心。与所有其他i7芯片一样,每个核心都是超线程的,因此您可以拥有最多4个线程。 使用Visual Studio 2010 c/c++来确定这些:

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

“threadsAvailable”返回的值为4,符合预期。但“coresAvailable”也报告为4。
我错过了什么?
1个回答

12

omp_get_num_procs返回操作系统报告的CPU数量,由于超线程核心将自己报告为2个CPU,因此双核超线程芯片将报告自己为4个处理器。

omp_get_max_threads返回代码并行区域中将使用的最多线程数,因此使用的最多线程数应该是可用的CPU数量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接