So I tried a test where instead of having one instance of NeatImage running on two CPUs, I had two instances of NeatImage running on one CPU each. Multiprocessor support in NI was disabled, and I bound each instance to a specific CPU (using the XP Task Manager).taob wrote:Same hardware as above, but now running 4.2 Pro+, and I'm doing a batch of 10 copies of the same image:
Time (10 images, processing only): 3m36s, 21.93 megapixels/minute
Time (10 images, loading + processing + saving): 3m52s, 20.42 megapixels/minute
A single image (thus only using one CPU) takes 30.5 seconds, or 15.53 megapixels/minute. So NI is only running at about 70% efficiency with two CPU's (it should do 31 megapixels/minute, but only gets about 22). I should try running two instances of NI to see if that makes a difference (I would expect not, but you never know)...
I started up the queues on both within about a half second of each other. After 14 minutes and 26 seconds, both finished within a second of each other, one having processed 24 images and the other 21 images. The aymmetry there is interesting... the faster instance was running on CPU 0. Anyway, that makes 45 images of 7.9 megapixels each for a total of 355 megapixels in 14.43 minutes, or 24.62 megapixels/minute.
That's an improvement of over 12% compared to NI doing the multithreading itself , but still less than 80% efficiency on a dual CPU system (assuming 100% is 31 megapixels/minute on my system). Has anyone tried running NI on a quad CPU system or larger?