【发布时间】:2013-02-08 19:04:49
【问题描述】:
我需要对下面需要大量处理时间的示例代码的建议。我正在 OpenCV 上开发项目,并且有这样的代码块(其中一些是图片)。我应该使用什么来提高速度?比如,OpenMP 或 TBB(这是 OpenCV 中的新功能,更复杂,也许一些示例更有帮助)或 GPU(实现整个项目)或 Boost 库或其他我不知道的第三方库。
我之前没有在c++上写过多线程
感谢您现在的帮助
示例代码sn-p:
for ( int j = 0; j < 90000000; j++ )
for ( int i = 0; i < 90000000; i++ )
for ( int k = 0; k < 90000000; k++ )
// float point operations
【问题讨论】:
-
为了便于理解,我对其进行了简化。在代码块中,可以是其他外部变量。另外,我需要一个建议,你能建议哪个选项可以很容易地遵循吗?
-
但是,我们不知道真正的瓶颈在哪里。如图所示,这里没有太多需要优化的地方。
-
首先很抱歉占用了您的时间,其次实际代码块很长,我不知道应该如何在这里发布。因此,我必须了解如何处理双重或三重?我应该使用 tbb 还是 openmp。对于类似情况,哪个选项是最佳解决方案?
-
例如;你在实现多线程程序时使用什么?这很容易理解,因为我的时间有限。再次感谢
-
((90 000 000^3) / 8) * bytes = 80 935 258.5 petabytes- 假设您正在索引一个优化存储的位矩阵。你想实际上在这里做什么?
标签: c++ multithreading opencv gpu tbb