"Per Core" Integer Performance: 7-Zip

The profile of a compression algorithm is somewhat similar to many server workloads: it can be hard to extract instruction level parallelism (ILP) and it's sensitive to memory parallelism and latency. The instruction mix is a bit different, but it's still somewhat similar to many server workloads. Testing single threaded is also a great way to check how well the turbo boost feature works in a CPU.

We ran this benchmark on the POWER8 a few months ago, but there are several reasons to do this again. First of all, we can now use GCC 4.9.2, which has specific support for POWER8 (-mcpu=power8). It is good to note that POWER8 is not a radical new design compared to POWER7. So we only expect modest gains from the compiler.

Secondly, last time we ran on top of PowerKVM, inside a virtual machine. Although that should not make a big difference either - as the benchmark runs almost completely (99%) in user modus and thus runs at 100% - it's still worthwhle to rule out the influence of the virtual machine.

So we recompiled the 7-Zip source code on every machine with the -O3 optimization with GCC 4.9.2.

LZMA per core Performance: Compression

It is important to note that Intel is extremely aggressive with Turbo-boost on the Xeon E5-2699v3. Running code on one core causes the 2.3 GHz Xeon to boost to 3.6 GHz. As a result, the typical clockspeed advantage of the POWER8 was minimized to a measly 90 MHz, with the POWER8 CPUs boosting from 3.425 GHz to 3.690 GHz.

We found that the POWER8 needs more than one thread to deliver good performance: with one thread we only achieve 62% of the performance of a Haswell core at the same speed. Using the mcpu=power8 compiler flag did little more than boost the performance by 1-3%, which is within the margin of error of this benchmark. So your (occassional?) single threaded code will fare badly on POWER8.

Once you fire off 8 threads however, the POWER8 CPU outperforms the hyperthreaded Haswell core slightly (4%).

How about decompression which is even more (IPC) unfriendly to our brainiacs?

LZMA per core Performance: DeCompression

With a single thread, performance of a POWER8 core is about 25% slower than a Haswell core. The Haswell core is still clearly better in extracting Instruction Level Parallelism out of this ILP-unfriendly code. However, let there be no mistake about the integer crunching power of POWER8: it delivers 35% higher performance than the hyperthreaded Xeon E5, core per core, clock per clock (give or take a few MHz).

Compression depends more on the datacache and OoO engine. It is remarkable that the Haswell core with its smaller L1-datacache does a lot better than the POWER8. The many unpredictable branches of the decompression code underutilize these very wide modern cores, and as a result the SMT-8 capable POWER8 outperforms the dual-threaded (SMT-2) Haswell. Notice that running two threads instead one thread on the POWER8 offers 61% better performance. Running 8 threads delivers 2.4x higher performance, a clear indication that the POWER8 CPU has a very wide integer execution engine, but can only deliver if enough threads are active.

Benchmark Configuration and Methodology Multi-Threaded Integer Performance
Comments Locked

146 Comments

View All Comments

  • JohanAnandtech - Saturday, November 7, 2015 - link

    Ok, Europe adopt the dot, but maybe the US can adopt the metric system like the rest of the world? :-)
  • bitaljus - Saturday, November 7, 2015 - link

    or better yet recode this site to see from what country u are visiting and use the appropriate denote thousands symbol, appropriate metric system and even time for the viewer. how meany time i was irradiated when i need to google something like this just to make it in local. and this is easy to do in the site natively. (P.S. Sorry for bad English, not native)
  • nils_ - Wednesday, November 11, 2015 - link

    The browser already sends a header with Accept-Language, which should be the preferred way to for the web site to determine locale. For example, I live in Germany so my browser will send en, en_UK, en_US, de and DE (this can be set somewhere in the settings). Now you can determine the language and other localisation based upon that, and there are tools where you can set the locale to then display dates, times etc.. based n that.

    Many sites instead use Geolocation based on the IP address, which can be really awkward when you travel to a country where you can't read the language.
  • ZeDestructor - Saturday, November 7, 2015 - link

    Even within EU it's not consistent.. UK uses commas for thousands, dot for decimal (and that's why the US and most anglophone countries use the same setup), Germany, Netherlands and France on the other hand favour dots for thousands, commas for decimal, so you see it used there.. and in a great number of their former colonies where the language and culture has stuck.
  • nils_ - Wednesday, November 11, 2015 - link

    Dates / Time are even funnier, that's also extremely inconsistent and can be very misleading. Think for examle a date like 12/11/2015, in some countries it'll mean the 12th of November while in others it will mean the 11th of December, and sometimes even the 2015th of November in 11 AD ;)

    I remember reading on the GTA IV in-game "Internet" a travel guide to Europe that said the months here have 12 days but there are 30 months a year or something to that effect ;)
  • powchie - Friday, November 6, 2015 - link

    let Johan do more reviews. been reading his stuff from late 90's and consider him the best then followed by Anand.
  • Ryan Smith - Saturday, November 7, 2015 - link

    Trust me when I say that if I could whip Johan any harder and make him work any faster I would be doing just that.;-)
  • juhatus - Saturday, November 7, 2015 - link

    When the Balrog showed up for work he had everyone fired.
  • ruthan - Friday, November 6, 2015 - link

    In summary should be something about software support, raw power is here, but software stack is
    very limited.
    PowerCPU is good for old legacy apps - SAP, Oracle etc.. but otherwise its dead end.
    I would like to see comparision of IBM LPAR virtualization against Xeon Vmware solution, or Oracle / MySQL benchmark on power vs. Oracle benchmark on Xeon.

    Server with Power even cant to run Crysis, or maybe some QEMU magic..
  • ruthan - Friday, November 6, 2015 - link

    Pleas Ad edit button like other civilized sites, i was hurry when i wrote it.

Log in

Don't have an account? Sign up now