I am sure that IPP helps us to develop efficient and high performance programs running on single core Intel's CPUs. But if I run my program written by IPP on a dual core CPU, then can I still expect to see more efficiecny and speed? Thanks
TheIPP use internal threading, implemented with OpenMP API. In IPP 5.3 threading is available in IPP DLL and is not available in IPP static libraries. This allow using static libraries in kernel mode or in case you want to implement threading above IPP calls.
If you want to utilize performance benefits available on the modern Intel multi core processors in the simpliest way you just need to link your application with IPP DLLs. Of course internal threading is implemented not for all functions but only where it actually provides speedup. (For example there is no reason to parallelize functions which work on 8x8 blocks or there is no technical possibility to thread huffman decoding functions because of data dependency).
You may find the full list of IPP functions which use threading in file ThreadedFunctionsList.txt located in doc folder of your IPP installation.
Thank you so much for your answer. I am using the evaluation version of IPP v5.2. Unfortunately, I couldn't find "ThreadedFunctionsList.txt". But would you please send me a copy of it? I need to check which IPP DLLs support threading strategy. I would be grateful if you help me. Thanks