Wir verwenden Xcode 4.5 auf einer C++ 11-Projekt, wo wir OpenMP verwenden unsere Berechnung zu beschleunigen:Xcode 4.5 und OpenMP mit Clang (Apple-LLVM) verwendet nur einen Kern
#pragma omp parallel for
for (uint x=1; x<grid.width()-1; ++x) {
for (uint y=1; y<grid.height()-1; ++y) {
// code
}
}
Obwohl der Activity Monitor zeigt mehrere Threads von dem Programm verwendet werden, die wir beobachteten, daß nur ein Kern verwendet wird:
wir haben auch den gleichen Code auf Ubuntu mit gcc 4.7 ausgeführt werden, und wir beobachteten Anstoß auf allen Kernen. Könnte es sein, dass die OpenMP-Unterstützung im Apple LLVM entfernt wurde? Gibt es eine Alternative zu OpenMP? Wir können nicht zu GCC wechseln, da wir C++ 11-Funktionen verwenden.
gcc unterstützt * viele * C++ 11-Funktionen, insbesondere die 4.7-Version. –
Leider bin ich nicht der einzige Entwickler unter OSX und möchte GCC 4.7 nicht auf jedem Entwicklungscomputer unterstützen. – Pascal
aber der apple g ++ 4.2.1 Compiler unterstützt openmp, Sie müssen den Standard Compiler in Ihren Build Optionen auf GCC 4.2 ändern. siehe https://developer.apple.com/library/mac/#documentation/DeveloperTools/gcc-4.2.1/gcc/C-Dialect-Options.html –