Puget Systems print logo
Read this article at https://www.pugetsystems.com/guides/579
Dr Donald Kinghorn (Scientific Computing Advisor )

POV-ray on Quad Xeon and Opteron

Written on July 14, 2014 by Dr Donald Kinghorn


POV-ray is an open source ray tracing package that has been around for what seems like forever. Actually since the late 1980’s! It has been a favorite system performance testing package since it’s inception because of the heavy load it places on the CPU. It has had an SMP parallel implementation since the mid 2000’s and is often used as a multi-core CPU parallel performance benchmark on both Linux and Windows.

So lets try it on our Quad socket many-core systems!

Test Systems

  • Puget Systems Peak Quad Xeon:
    • 4 x Intel Xeon E5-4624L v2 @1.9GHz 10-core
    • 64GB DDR3 1600 Reg ECC
  • Puget Systems Peak Quad Opteron:
    • 4 x AMD Opteron 6344 @2.6GHz 12-core
    • 64GB DDR3 1600 Reg ECC

Test OS’s

  • Windows Server 2008 R2
  • Linux CentOS 6.5

Windows install

Installing on Windows is straightforward. Just download the install setup file from http://www.povray.org/download/ and run it. It will install a graphical interface that includes controls for setting the number of system CPU cores to use and has a menu item for running the standard benchmark.

Linux install

I could not find a repository with a povray rpm for CentOS so I built it from source. The following is the basic outline for the build (with # comments …)

# use git to grab the source tree off of github
git clone https://github.com/POV-Ray/povray.git

# go to the unix directory and run the pre configure script
cd povray/unix

# cd back to the main directory and run configure to set the 
# build environment and create the makefile
cd ../
# it complains if you don’t add a “COMPILED_BY”
./configure COMPILED_BY="dbk pugetsystems.com”

# Hey we have 40 cores we may as well try to use half of them
# for the build! ( -j 20 )
make -j 20

# su to root and do a make install
make install

# done!


One of the most interesting things about testing with the many-core quads is seeing how multi-threaded applications scale with thread count. We can fit that data to an Amdahl's Law curve.

Amdahl’s Law

Amdahl’s Law basically says that speedup of a parallel code is limited by the sequential fraction. The following formula gives us curve to fit our scaling and perfromance data to.

S(n) = T(1)/T(n) = 1/( ( 1-P ) + P/n )

Notes: The most glaring result on this plot is how bad the scaling is on Windows with Hyper-Threading on! The scaling with HT off is much better with Windows. For Linux HT made no difference (the actual Linux data points are with HT on) and the scaling is somewhat better than Windows.

Notes: On the Opteron system we see both Linux and Windows scale about the same with Windows doing slightly better.

It’s common to see PPS (pixels per second) numbers reported for POV-ray as a performance measure so we show that in the next two plots.

Notes: On the performance plots Linux clearly does much better that Windows and again Hyper-Threading clobbers the Windows performance (it made no difference with Linux).

Notes: The Opteron also shows a significant advantage going to Linux.


The effect of hyper-threading turned out to be one of the most interesting aspects of this testing. ( I did a separate post about that Hyper-Threading may be Killing your Parallel Performance )

Linux was indifferent to hyper-threading up to the 40-physical cores, i.e. the results were the same with hyper-threading on or off. However, there was a nearly 20% improvement over the 40 core result by going to 80 cores with hyper-threading on.

For Windows, hyper-threading was just bad! ( as is clearly seen in the scaling and performance plots )

The following table shows hyper-threading effects for 40, 60, and 80 cores on the quad Xeon test system (40 physical cores).

Selected data points showing effect of Hyper-Threading

Threads Linux HT off Linux HT on Windows HT off Windows HT on
40 40 sec 40 sec 53 sec 79 sec
60 39 sec 35 sec 50 sec 78 sec
80 39 sec 32 sec 50 sec 78 sec


  • I expected run times for Linux and Windows to be nearly the same. Some of the difference ( with hyper-threading off ) may be from compiling the Linux version from source. However, I just did a standard build without any optimization tweaks to “configure”.
  • The Windows version ( Server 2008 R2 ) is a bit dated and something like Server 2012 R2 may give different/better(?) results.
  • You have to test your demanding application with hyper-threading on and off! In the past I would by default turn hyper-threading off on server/HPC type of hardware and leave it on for “desktop” hardware. From now on I’m actually going to test!

Happy computing! --dbk

Tags: Hyperthreading, HPC, Quad Xeon, POV-ray, Linux, Windows Server
Avatar Jay

Wow, I alway considered hyper threading a scam, thanks for verifying it is pretty much worthless. Chief Architect sez "get as many cores as possible" & hyper threading does not count!

My Phenom IIx4 965 is running fine but when it is time to upgrade I will remember you'se. I really like the g34 opterons & with modern games being made for 8 core console CPU's the run GREAT on 8 or 16 or more cores. Nice quiet core that will last a long long time.

Posted on 2015-02-08 20:25:28

Hyperthreading doesn't help in many situations, like the ones Dr. Kinghorn was testing... but it *does* help in many others. It really comes down to what you are doing with your computer. For example, it doesn't help in games - which is why I often recommend a Core i5 instead of an i7 for gamers, if they are on a budget.

With or without Hyperthreading, though, Intel processors wipe the floor with AMD chips. I hate to say that, as I used to love AMD and used their stuff in three of my computers in the 2000s... one is still in service as my HTPC. But they just don't keep up for gaming. Further, all the gaming tests I've ever seen show no advantage to going above 4 cores (at least not on Intel processors).

Posted on 2015-02-09 17:19:49