加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Xcode 4.5和OpenMP with Clang(Apple LLVM)仅使用一个核心

发布时间:2020-12-14 19:45:26 所属栏目:百科 来源:网络整理
导读:我们在C 11项目中使用 Xcode 4.5,我们使用OpenMP来加速计算: #pragma omp parallel forfor (uint x=1; xgrid.width()-1; ++x) { for (uint y=1; ygrid.height()-1; ++y) { // code }} 虽然活动监视器显示程序正在使用多个线程,但我们发现只使用了一个核心:
我们在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.

解决方法

Clang还不支持OpenMP(它还没有删除 – 它从来就不存在).您可以使用Apple的Grand Central Dispatch(GCD)任务系统,也可以使用Intel的 Threading Building Blocks(TBB).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读