我们在一个 C++11 项目中使用 Xcode 4.5,我们使用 OpenMP 来加速我们的计算:
#pragma omp parallel for
for (uint x=1; x<grid.width()-1; ++x) {
for (uint y=1; y<grid.height()-1; ++y) {
// code
}
}
尽管活动监视器显示程序正在使用多个线程,但我们观察到只使用了一个内核:
我们还在使用 GCC 4.7 的 Ubuntu 上运行相同的代码,并观察到所有内核上的争用。会不会是 Apple LLVM 中删除了 OpenMP 支持?有没有 OpenMP 的替代品?由于我们使用 C++11 特性,我们无法切换到 GCC。