2012-12-05 14 views
6

हम एक सी ++ 11 परियोजना जहाँ हम OpenMP का उपयोग हमारी गणना तेजी लाने के लिए पर Xcode 4.5 का उपयोग कर रहे उपयोग करता पता चलता है एक से अधिक थ्रेड कार्यक्रम हमने देखा द्वारा किया जा रहा है कि केवल एक कोर प्रयोग किया जाता है:Xcode 4.5 और बजना (एप्पल LLVM) के साथ OpenMP केवल एक कोर

Screenshot of the Activity Monitor running my code

हम भी Ubuntu पर एक ही कोड जीसीसी 4.7 का उपयोग कर चलाने के लिए और हम सभी कोर पर विवाद मनाया। क्या यह हो सकता है कि ऐप्पल एलएलवीएम में ओपनएमपी समर्थन हटा दिया गया हो? क्या ओपनएमपी का कोई विकल्प है? हम सीसीसी + 11 सुविधाओं का उपयोग करने के बाद से हम जीसीसी पर स्विच नहीं कर सकते हैं।

+2

जीसीसी * सी ++ 11 सुविधाओं का बहुत * समर्थन करता है, खासकर 4.7 संस्करण। दुर्भाग्यवश –

+0

दुर्भाग्यवश मैं ओएसएक्स पर एकमात्र डेवलपर नहीं हूं और हर डेवलपर मशीन पर जीसीसी 4.7 का समर्थन नहीं करना चाहता हूं। – Pascal

+0

लेकिन सेब जी ++ 4.2.1 कंपाइलर ओपनएमपी का समर्थन करता है, आपको अपने बिल्ड विकल्पों में जीसीसी 4.2 में डिफ़ॉल्ट कंपाइलर बदलना होगा। https://developer.apple.com/library/mac/#documentation/DeveloperTools/gcc-4.2.1/gcc/C-Dialect-Options.html –

उत्तर

11

क्लैंग अभी तक ओपनएमपी का समर्थन नहीं करता है (इसे हटाया नहीं गया है - यह पहले स्थान पर कभी अस्तित्व में नहीं था)। आप ऐप्पल के ग्रैंड सेंट्रल डिस्पैच (जीसीडी) टास्किंग सिस्टम का उपयोग कर सकते हैं या आप इसके बजाय इंटेल के Threading Building Blocks (टीबीबी) का उपयोग कर सकते हैं।

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