|
|
Given: One Pentium 4 with hyperthreading (2 virtual processors)
Find: Does running two instances of POV-Ray make sense?
Experimental setup:
1 Dell Dimension Precision 360
1 Pentium 4 3.2GHz processor (2 virtual processors)
1.00GB main memory
Windows XP Service Pack 1
Cygwin execution environment
Megapov 1.01 (Megapov 1.0 with a couple of my own patches added)
compiled with GCC 3.3.1-cygwin
POV-Ray 3.5 standard benchmark.pov version 1.02,
and standard benchmark ini file
Procedure:
1. Run the benchmark on a single instance of pov.
A single instance never uses more than 50% cpu time, according to task
manager
2. Run the benchmark simultaneously on two instances of pov.
The two instances are run in two seperate xterm instances, in the same
directory, with the same command line, manually started less than 1
second apart. Neither instance uses more than 50%, and the combined
total is usually 99% or 100%.
3. Note the real time of completion for all runs. POV-Ray reports this
in its statistics page as total time. This is distinct from the CPU time
used as reported by task manager.
Data:
Single instance: Complete in 37min12sec
Double instance: First complete 58min50sec
Second complete 59min17sec
Analysis and discussion:
This is a custom build of megapov, which itself is a distinct version of
POV-ray. The purpose of this experiment is not to compare this version
with any other benchmark. The only variable in this experiment is number
of simultaneously running instances.
To compare the runs most easily, compute pixels per second. On the
single instance, divide the number of pixels rendered by the number of
seconds in the render
384*384= 147456 pixels
37:12= 2232 seconds
147456/2232=66.06pixels/second.
On the double instance, the number of pixels is twice as much, since two
images were rendered, and the render time is the longer of the two runs,
since they were started simultaneously and what matters to me is the
amount of real time between start and end of render.
384*384*2= 294912 pixels
59:17= 3557 seconds
294912/3557=82.91pixels/second
Results:
Running two instances results in an improvement of (82.91/66.06)-1=25.5%
speed improvement. Two identical independent computers can reasonably
expect a 100% improvement.
Conclusion:
Hyperthreading does result in an improvement of rendering speed, but
only 25%. This is small, but speed is speed, and any improvement is
good. It does make sense two run two instances, but do not expect twice
the rendering speed.
Post a reply to this message
|
|