【问题标题】:OpenMP SIMD Vs multi-threadedOpenMP SIMD 与多线程
【发布时间】:2012-02-21 15:23:34
【问题描述】:

考虑到openmp使用simd模型,即每条指令都由所有线程执行,所以在编写openmp并行应用程序时应该小心,为什么我们应该更喜欢openmp而不是相同算法的多线程版本?

【问题讨论】:

  • 因为 OpenMP 更容易编写。让我问:为什么在编写 OpenMP 并行应用程序时要小心?
  • 因为虚假共享,避免条件语句(因为SIMD)
  • 我不是 openMP 专家,但据我了解,您只需添加编译指示即可轻松创建多线程应用程序,只需更改编译标志即可将其转换为单核应用程序。 OpenMp 会根据您的 cpus 创建确切数量的线程。

标签: multithreading openmp


【解决方案1】:

从 3.0 开始,OpenMP 不再只是 SiMD。

常见的原因有:

  • 易于使用/代码量。
  • 可以在没有 -fopenmp 标志的情况下编译相同的代码并获得“遗留代码复古兼容性”。显然,这与#pragma 语句的使用有关。

【讨论】:

    猜你喜欢
    • 2016-05-03
    • 2018-06-12
    • 2020-12-08
    • 2015-08-24
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多