有没有一种方法可以让 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 线程上运行?的主要内容,如果未能解决你的问题,请参考以下文章