Intel IPP Multi-Threading: No Speed Up 1 -> 2 processors?
We're trying to speed up our image processing software using the Intel IPP 7.0 libraries that are supposed to be mulit-core aware. However, I get no speed up using two threads over one.
The function calls I'm making are of the type ippiSub_32f_C1R() where two 1280x960 images are being subtracted.
On my dual-core system, if I force the IPP library to run on one processor with a call to ippSetNumThreads(1) I get an average execution time of my little test program of 15.4 msec. When I set it to use 2 processors I get 15.9 msec. I expected something around 8 msec.
Can someone tell me why there is no decrease in execution time with 2 processors? My CPU is an Intel Core2 Duo E6850 running at 3.00 GHz, Win 7.
As you are asking about details of a specific IPP function, you may get more knowledgeable replies on the IPP forum. A common reason for threaded performance limiting is memory bandwidth. Employing additional cores on a single CPU doesn't increase bandwidth to memory. Some of the motherboard/chipset combinations supported full DDR3-1333 performance only for a single DIMM per channel, so your CPU model doesn't tell the entire story.