Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv TBB并行_,用于线程数较少的_Opencv_Detection_Tbb_Parallel For - Fatal编程技术网

Opencv TBB并行_,用于线程数较少的

Opencv TBB并行_,用于线程数较少的,opencv,detection,tbb,parallel-for,Opencv,Detection,Tbb,Parallel For,我已经使用opencv人脸检测器编写了一个多视图人脸检测代码。我在一张图像上运行五个检测器(针对不同的姿势角度进行训练),并测量它们的权重来检测图像中的人脸。我已经使用TBB parallel_使代码并行,但是它只将性能提高了1.7倍。我想问一下,是否有更好的方法来并行运行五个探测器 我正在一个16核的集群上运行我的代码。我认为线程的数量(在我的例子中是5个)太少,无法利用完整的功能 有什么建议吗 谢谢,一些可能的问题需要研究: 其中一个探测器的运行时间比其他探测器长。例如,如果一个探测器占用

我已经使用opencv人脸检测器编写了一个多视图人脸检测代码。我在一张图像上运行五个检测器(针对不同的姿势角度进行训练),并测量它们的权重来检测图像中的人脸。我已经使用TBB parallel_使代码并行,但是它只将性能提高了1.7倍。我想问一下,是否有更好的方法来并行运行五个探测器

我正在一个16核的集群上运行我的代码。我认为线程的数量(在我的例子中是5个)太少,无法利用完整的功能

有什么建议吗


谢谢,

一些可能的问题需要研究:

  • 其中一个探测器的运行时间比其他探测器长。例如,如果一个探测器占用4个时间单位,而其他四个探测器各占用1个时间单位,则最可能的加速比为2x。在这种情况下,并行化慢速检测器本身可能会有所帮助
  • 探测器运行如此之快,以至于平行探测器没有时间展开工作。如果每个探测器至少需要0.1秒,这应该不是问题
  • 内存带宽可能是一种有限的资源,特别是当工作集不适合外部级别的缓存时
“英特尔(R)VTune(TM)放大器”等探查器有时有助于查找这些问题。放大器既有商业许可证,也有商业许可证。[免责声明:我为英特尔工作。]