UIC Multithreading

UIC Multithreading

Hi All,

I've been looking into JPEG decoding performance via UIC.  I've tried:

1) ippSetNumThreads() called with 1, 4

2) SetThreadingMode() called with JT_OLD, JT_RSTI

3) SetNOfThreads() called with 1,4,16

4) 8-bit jpegs with and without restart intervals

None of the combinations of these settings produces a measureable difference in the exeuction time for decoding a single JPEG image.  The UIC we are using has been built with MS Visual Studio.  We are running IPP version

Any guidance on how to achieve the speedups as described in http://software.intel.com/en-us/articles/jpeg-new-threading-model-in-ipp would be much appreciated.




4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

UIC package allows you to build source for Visual Studio for single threaded model and multithreaded model. Everything looks like you built UIC for single threaded model.

Best regards,


Hi Michal,

In order to benefit from UIC decoder multi-threading, you need to build UIC with OpenMP and static single-thread IPP libraries. In this case the parallelization starts on JPEG decoder level and the decoder will use single-threaded IPP functions to not suffer from oversubscription (when number of active threads is larger than number of CPU cores).

As far as I see from samples' makefiles, UIC is built exactly this way: "/openmp /D "_IPP_SEQUENTIAL_STATIC"" options are set for compiler.

Please, check.



What I usually do when I need to know if threading is working well, is to let the decoder decode a huge jpeg file, and just peek at the process monitor (Task Manager), to see that the cpu goes up on all cores.


Leave a Comment

Please sign in to add a comment. Not a member? Join today