2011-11-08 19 views
6

मेरे मैकबुकप्रो, बूटकैम्प चलाना, एक इंटेल i7-640M प्रोसेसर है, जिसमें 2 कोर हैं। अन्य सभी i7 चिप्स की तरह, प्रत्येक कोर हाइपरथ्रेड होता है, इसलिए आपके पास 4 धागे तक हो सकते हैं। का प्रयोग विजुअल स्टूडियो 2010 C/C++ इन निर्धारित करने के लिए:सीपीयू कोर बनाम धागे

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

"threadsAvailable" 4 के एक मूल्य के साथ वापस की उम्मीद के रूप में आता है,। लेकिन "कोरस उपलब्ध" भी 4 के रूप में रिपोर्ट किया गया है।

मुझे क्या याद आ रही है?

उत्तर

11

omp_get_num_procs ओएस रिपोर्टों की सीपीयू की संख्या देता है, और चूंकि हाइपरथ्रेडेड कोर खुद को 2 सीपीयू के रूप में रिपोर्ट करता है, इसलिए एक ड्यूल-कोर हाइपरथ्रेड चिप स्वयं 4 प्रोसेसर के रूप में रिपोर्ट करेगा।

omp_get_max_threads सबसे अधिक थ्रेड लौटाता है जो कोड के समांतर क्षेत्र में उपयोग किया जाएगा, इसलिए यह समझ में आता है कि इसका उपयोग करने वाले अधिकांश धागे CPU की संख्या उपलब्ध होंगे।

संबंधित मुद्दे