Ask Your Question

Where is OpenMP used in OpenCV?

asked 2014-05-27 03:36:58 -0600

Wilds gravatar image

If OpenMP is build into the libraries is it used somewhere in the libraries? Is there a list to see which algorithms have parallel versions?

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2014-05-28 03:17:08 -0600

Guanta gravatar image

As far as I understood it, OpenCV encapsulates libraries like OpenMP and TBB (see modules/core/src/parallel.cpp), so any method which uses parallel_for_ can make use of OpenMP (note: if TBB is enabled, OpenMP won't be used). I.e. each module using parallel_for_ ( can possibly make use of OpenMP.

The modules listed by @tuannhtn are apart from parallel.cpp actually outdated and should be revised to use parallel_for_ instead (if anybody has some time and wants to help OpenCV, this would be a nice and easy task to contribute- also parallel_for should be converted to parallel_for_).

Note, you can also use parallel_for_ yourself and thus use it as a wrapper for TBB/OpenMP, too.

edit flag offensive delete link more


Learned it!

eatcosmos gravatar imageeatcosmos ( 2018-08-27 02:24:46 -0600 )edit

answered 2014-05-27 14:33:34 -0600

Witek gravatar image

OpenMP is NOT used in OpenCV anymore if I am not wrong. Instead, Intel TBB is used. For a list of parallelized functions scan the source code for phrase: HAVE_TBB.

edit flag offensive delete link more


For the TBB case, it is used, but not by default. But OpenMP, I'm not sure if it is not used, see this result (

tuannhtn gravatar imagetuannhtn ( 2014-05-27 15:18:37 -0600 )edit

Here is a short guide on how to manually compile OpenCV with Intel's TBB library

Y Simson gravatar imageY Simson ( 2014-05-28 00:41:03 -0600 )edit

Question Tools



Asked: 2014-05-27 03:36:58 -0600

Seen: 6,972 times

Last updated: Aug 27 '18