POV-Ray : Newsgroups : povray.general : Hyperthreading benchmark : Hyperthreading benchmark Server Time
2 Aug 2024 20:18:12 EDT (-0400)
  Hyperthreading benchmark  
From: Chris Jeppesen
Date: 22 Jul 2004 17:12:29
Message: <41002dbd$1@news.povray.org>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.