calcHist should handle parallel operations for small images better (Feature #4465)


Added by Damon Maria over 9 years ago. Updated over 9 years ago.


Status:Open Start date:2015-07-06
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:core
Target version:-
Difficulty: Pull request:

Description

At the moment calcHist always tries to split the image up by rows and perform the operation in parallel under TBB.

There are a couple of problems:
  • If the height of the image is less than the threads TBB is using then OpenCV sends a grainSize of 0 to TBB which is invalid and violates an assertion in TBB
  • For small (in height) images on machines with many cores the overhead of TBB can far exceed the benefit of splitting up the operation, and may even cause stalls inside TBB (see #4353)

Related issues

related to Bug #4353: 100% CPU / lockup / stalled in cv::ThresholdRunner::opera... Cancelled 2015-05-21

History

Updated by Alexander Alekhin over 9 years ago

Current implementation of calcHist contains TBB only optimization under "#if HAVE_TBB"
Need to verify existed parallel optimization and to check possibility of migration to "parallel_for_"

P.S. Also need to check another code under HAVE_TBB

  • Status changed from New to Open

Updated by Maksim Shabunin over 9 years ago

Issue has been transferred to GitHub: https://github.com/Itseez/opencv/issues/5059

Also available in: Atom PDF