Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
80 Views

IPP multithreaded libraries not installed?

Hello

I'm getting this error when I compile my program with Intel's compiler v14:

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\x64\PlatformToolsets\Intel C++ Compiler XE 14.0\ImportBefore\Intel.Libs.IPP.Intel C++ Compiler XE 14.0.targets(91,5): error : IPP multi-threaded libraries are not installed.

I have Parallel Studio XE 2013 for windows, I thought it came included with IPP, did I miss something?

Thanks

0 Kudos
8 Replies
Highlighted
Employee
80 Views

Hi Dominique,

You need to reinstall PS2013 in "modify" mode and use "customizing" (or "customize") button on one of installation dialogs. There you need to specify that the installation of IPP multi-threaded libraries is required. By default they are OFF.

0 Kudos
Highlighted
Beginner
80 Views

Thank you they have been installed now. But why does it say (Deprecated)? Has support for them been dropped or is there a problem with using them?

0 Kudos
Highlighted
Employee
80 Views

Hi Dominique,

Multi-threaded libraries are deprecated because internal (inside a primitive) threading is significantly less effective than external (at the application level) threading. Moreover - IPP internally is threaded with OMP, Linux p-threads or Win API or any other threading engine know nothing about OMP and if application is threaded with any other threading tool - you can face with different issues like thread oversubscription, conflicts, etc. With new IPP versions we provide a lot of new APIs for 1D (ipps) and 2D (ippi) functions that support external threading. Several IPP functions combined into 1 pipeline that is threaded externally are significantly more efficient from the performance and power points of view than sequential call of internally-threaded variants of these functions.

regards, Igor

0 Kudos
Highlighted
Novice
80 Views

Igor,

I wish you brought back those libraries.
They were the best feature of IPP.

On many cases Multi Threaded Filters are all needed.

Thank You.

0 Kudos
Highlighted
Beginner
80 Views

So does that mean if I am using the IPP functions in for example a Windows DirectShow Filter where multiple instances may be active within a process then I need to provide my own external locks around calls to IPP functions?.

 

0 Kudos
Highlighted
Employee
80 Views

Hi ,
IPP is thread safe libraries. so it could be used by different thread at the same time. It does not need to add a lock externally.

Thanks,
Chao

0 Kudos
Highlighted
Beginner
80 Views

But if i need just to do a single function on single data continuously, lets say a 2d fourier transform possibly on a big data chunk, and at the same time is unable or dont have the time to do a good optimization myself and yet this function dominates execution time and uses its core up 100%, is it still not a good reason to use the multithreaded version?

ArneBo

0 Kudos
Highlighted
Employee
80 Views

Hi All,

as Igor mentioned IPP team introduced Threading Layer for IPP libraries. It realizes the same functionality as IPP multi-threaded libraries and additionally enable a customer to organize threading for a custom pipeline that has much better performance vs. IPP threaded libraries. The Threading Layer are supported OpenMP and TBB tools starting from IPP 2019 gold release.

In a one of next IPP 2019 updates you can see an example of usage IPP Threading Layer in several modes and you can see performance benefits.

Yes there are a small % of cases when internal threading gives better performance results vs. external threading. But in general external threading is more effective.

Pavel

0 Kudos