有没有一种方法可以让 OpenMP 在 Qt spanwed 线程上运行?

Posted

技术标签:

【中文标题】有没有一种方法可以让 OpenMP 在 Qt spanwed 线程上运行?【英文标题】:Is there a way that OpenMP can operate on Qt spanwed threads? 【发布时间】:2011-03-07 14:15:28 【问题描述】:

我正在尝试并行化应用程序的数字运算部分,以利用 Mac OS 10.5 上的 OpenMP 和 GCC 4.2 的四核架构。但我认为问题在于该应用程序将 Qt 用于 GUI,并且我试图在 Qt 创建的辅助线程上分叉工作线程,这会导致程序崩溃 - 但对此我不确定。

我在这里是认真的,因为这是我第一次使用 Qt 或 OpenMP(或 C++)。非常感谢任何形式的指导。

【问题讨论】:

【参考方案1】:
    使用 OpenMP 的部件是否工作 独立的,即不运行时 Qt 线程? 你能解决你的问题吗 使用QtConcurrent 或一些 thread support in Qt的其他解决方案? 无论如何,您能否提供一些 你的代码用于说明?通常 这让事情变得容易多了。

【讨论】:

【参考方案2】:

目前这不起作用。我认为它甚至被报告为 Qt 和 gcc 中的错误 - 如果我没记错的话。它被多次报告(例如here)。它至少在 linux 上适用于一些 gcc/Qt 组合。

【讨论】:

在这里评论我自己。使用截至今天最新的 macports gcc 构建(gcc 版本 4.5.1),问题得到解决。从工作人员 QThread 中启动 openmp 线程的工作方式应该如此。

以上是关于有没有一种方法可以让 OpenMP 在 Qt spanwed 线程上运行?的主要内容,如果未能解决你的问题,请参考以下文章

OpenMP使用体验报告(概述)

ThreeJs到Qt

基于GCC的openMP学习与测试

Qt删除框架?

QT 可以与 Windows 原生集成吗?

有没有一种方法可以忽略 Qt c++ 中的文件名区分大小写?