2011-11-08 19 views
6

BootCampを実行している私のMacBookProには、Intel Core i7-640Mプロセッサが2つ搭載されています。他のすべてのi7チップと同様に、各コアはハイパースレッディングされているので、最大4つのスレッドを持つことができます。 Visual Studio 2010 c/C++を使用してこれらを決定する:CPUコアとスレッド

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

「threadsAvailable」の値は、期待どおり4に戻ります。しかし、 "coresAvailable"も4と報告されています。

私は何が欠けていますか?

答えて

11

omp_get_num_procsは、OSが報告するCPUの数を返します。ハイパースレッドコアはそれ自身を2個のCPUとして報告するため、デュアルコアハイパースレッドチップは4個のプロセッサーとして報告されます。

omp_get_max_threadsは、コードの並列領域で使用されるほとんどのスレッドを返します。したがって、使用するスレッドのほとんどは使用可能なCPUの数になります。

関連する問題