If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Linux, FreeBSD, Solaris i7-3960X Scaling Performance

Phoronix: Linux, FreeBSD, Solaris i7-3960X Scaling Performance

Using the new Intel Core i7 3960X Extreme Edition Sandy Bridge processor, Scientific Linux 6.1, Debian GNU/Linux, Debian GNU/kFreeBSD, and Solaris 11 11/11 were benchmarked when having a different number of CPU cores enabled to see how well each operating system scales up to six cores plus Hyper Threading.

Check out the Phong rendering graph.

Is solaris scaling TOO well here?
At the 2 core mark it looks like it is above 2 times better.
I suppose the code could be written in such a way that it has too much overhead for small number of processors, but does anyone have any experience writing superscalable code that can say for sure?

Re: Check out the Phong rendering graph

Indeed, I noticed that in the graph, too - but there's a simple explanation.
The renderer is using simple OpenMP loops, of the form:

#ifdef USE_OPENMP
#pragma omp parallel for
#endif
// Plot all the vertices of object i on the canvas
for(int j=0; j<(int)_vertices.size(); j++) {

...so no, in theory it is impossible to see a speedup of more than 2x when using 2 threads instead of one - or a speedup of more than 4x when using 4 threads.

Unless... the single-core case is handled BADLY by Solaris.

Michael plotted the relative speedup when going from one core to 2, 4, 6, etc.
In this case, the single-core running speed of Solaris ( as reported in the full benchmark results) is 21.06 frames per second, when Linux scored around 28 frames per second - in both cases, using a single core!

So, in effect, what we are seeing here is that Solaris is "punishing" single-core executions - i.e. the OpenMP library in Solaris handles single-core machines very badly.

P.S. Perhaps this affected other benchmarks too - it's easy for Solaris to appear to have better scalability, when the single-core performance is much worse than the other contenders (Linux and BSD in this case). For example, look at the speed of C-Ray when run with a single core under Solaris vs the other two (Linux/BSD) - it is about half as much (250 seconds vs 500 seconds). Solaris "punishes" single-core executions so much, that it appears to scale much better as more cores are introduced...

Thanassis.

Last edited by ttsiodras; 12-20-2011 at 12:28 PM.
Reason: In hindsight, other benchmarks might be affected from this, too...