Ideas for using the Intel TBB task scheduler with Intel OpenCv

Ideas for using the Intel TBB task scheduler with Intel OpenCv

lasted2's picture

I want to use TBB's scheduler to manage data reading and processing with multiple cameras,so that each camera performs its functions in a seperate thread. Most of my vision code is using Intel OpenCv.

Vision applications often lack responsiveness and scalability. It is common to see applications that periodically hang and stop responding.The reason applications hang and have poor responsiveness is almost always due to performing camera read operations,and then routing this high volume of data to multi-step algorithms.

When an application's performs ,for example two camera read operation simultaneously, the application is basically giving up control of the thread's processing to the devices. The application's responsiveness then becomes unpredictable.When threads are suspended waiting for requests to complete, the application tends to create more threads in an attempt to accomplish more work. creating, scheduling, and destroying a thread requires time and memory and can actually hurt performance rather than improve it.

Also if one of the camera fails to give data,the whole application crashes.

Can I use TBB in combination with OpenCv ,so that the thread management issues are taken care of by TBB ?

Any hint will be appreciated !!

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Raf Schietekat's picture

My understanding is that TBB assumes its tasks are running at full throttle, so it will not steal any work and dispatch a software thread to keep a hardware thread busy. The advice I've heard is to do the I/O yourself and then assign computational work to a background task.

Login to leave a comment.