2011-11-08 21 views
6

BootCamp çalıştıran MacBook Pro'm 2 çekirdekli Intel i7-640M işlemciye sahip. Diğer tüm i7 yongaları gibi, her bir çekirdek de hiper iş parçacıklıdır, bu yüzden en fazla 4 iş parçacığına sahip olabilirsiniz. Visual Studio 2010 C/C++ kullanarak bu belirlemek için: beklendiği gibicpu cores vs thread

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

"threadsAvailable" geri 4 değeriyle birlikte gelir. Ancak "çekirdekler kullanılabilir" de 4 olarak bildirilmiştir.

Neyi eksik?

cevap

11

omp_get_num_procs, OS'nin bildirdiği CPU'ların sayısını döndürür ve hiper iş parçacıklı bir çekirdek kendisini 2 CPU olarak rapor ettiğinden, çift çekirdekli bir hiper iş parçacıklı yonga kendisini 4 işlemcili olarak rapor edecektir.

omp_get_max_threads, kodun paralel bir bölgesinde kullanılacak çoğu parçacığı döndürür, bu nedenle kullanacağı çoğu iş parçacığı, kullanılabilir CPU sayısı olacaktır.