在Qt/C++程序中使用OpenMP
using OpenMP in a Qt/C++ program
我想用OpenMP并行化Qt/C++程序,这样我就可以与Qt线程工具进行比较。我有一些问题。
-
我必须在代码和项目文件中包含哪些内容才能使 OpenMP 正常工作?
-
在可交付的软件项目中使用 OpenMP 会很痛苦吗?每个版本是否应该包括 OpenMP 的更新和大量维护?
-
您对 OpenMP 的性能有何体验?
-
使用 OpenMP 的嵌套并行工作值得信赖吗?
-
OpenMP 是否在与 Qt 相同的平台上受支持?
任何参考资料将不胜感激。多谢!
-
我必须在代码和项目文件中包含哪些内容才能使 OpenMP 正常工作?
您必须在代码中引入 OpenMP 编译指示,并可能链接到 OpenMP 运行时库(这将在构建系统中引入有限的更改)。
-
在可交付的软件项目中使用 OpenMP 会很痛苦吗?每个版本是否应该包括 OpenMP 的更新和大量维护?
我不确定你说的"痛苦"是什么意思。我知道很多项目都成功地使用了OpenMP。可能不时需要一些维护(但我想Qt也是如此)。
-
您对 OpenMP 的性能有何体验?
或多或少对任何好的基于线程的并行化工具都应该有期望。如果工作负载足够繁重,OpenMP 本身不应为您的代码增加太多开销,并且阿姆达尔定律将是您的极限。
-
使用 OpenMP 的嵌套并行工作值得信赖吗?
是的
-
OpenMP 是否在与 Qt 相同的平台上受支持?
与Qt这个框架不同,OpenMP支持主要由编译器完成。您可能会发现Qt可编译的平台,但C++编译器不支持OpenMP。当然,这取决于您针对的平台类型。
- 读/写 OpenMP 中的共享向量会减慢程序速度
- 为什么 C++ openMP 程序执行时间更长
- 如何修复 OpenMP 程序的 gdb 运行中的线程数
- 使用MPI/OpenMP的C 程序带有派生数据类型(嵌套类对象)容器
- 如果在C 程序中使用OpenMP,请在运行时检测
- OpenMP程序在没有关键部分的情况下工作
- 正在查找OpenMP+MPI应用程序的资源
- OpenMP程序挂在块的末尾
- 启用从程序内部取消 openmp 线程
- 如何将OpenMP与Qt一起使用,以便应用程序仍然可以点击
- OpenMP示例程序
- 使用OpenMP C++并行计算程序的积分
- 在OS X Yosemite上使用gcc编译器编译OpenMP程序
- 如果由另一个 OpenMP 程序调用,则外部调用的 OpenMP 程序仅使用一个线程运行
- 为什么 OpenMP 程序只在一个线程中运行
- 基本的openmp程序运行速度较慢
- RHEL5上的短c openmp程序随机崩溃
- openmp++程序能否在Hadoop中用作mapper/reducer函数?
- BFD:矮人错误:在使用GNU 4.7.2使用HPCToolKit分析openmp程序时
- 为什么这个OpenMP程序比单线程慢?