相信大家都同意这篇文章的标题。有人能指出我的原因吗?有没有参考书之类的?我试图找到但没有运气。
我相信原因是 openmp 有同步开销,没有 openmp 项目没有。
希望有人能进一步扩展原因吗?
Thanks
虽然即使只有一个线程,使用 OpenMP 在运行时也会产生一些开销,但更重要的问题可能是编译器必须执行的代码转换来生成 OpenMP 代码(特别是将并行区域代码概述为单独的函数)由 gcc 和 icc 完成;PGI 做一些不同的事情...])将影响其他代码优化(例如矢量化)。
当在概述的函数中执行部分代码时,编译器在单个函数中拥有的允许优化的信息可能会丢失,因此生成的代码可能会更糟。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)