"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

  • Kevin G - Saturday, November 7, 2015 - link

    If all you do is just mount the network volume to use the data, then likely nothing at all. While binaries do have to be modified, the file systems themselves are written to store data in a single consistent manner. If you're wondering more if there would be some overhead in translating from LE to BE to work in memory, conceptually the answer is yes but I'd predict it be rather small and dwarfed by the time to transfer data over a network. I'd be curious to see the results.

    Ultiamtely I'd be more concerned with kernel modules for various peripherals when switching between LE and BE versions. Considering that POWER has been BE for a few generations and you did your initial testing using LE, availability shouldn't be an issue. You've been using the version which should have had the most problems in this regard.
  • spikebike - Friday, November 6, 2015 - link

    So basically power is somewhat competitive with intel's WORST price/perf chips which also happen to have the worst memory bandwidth/CPU. Seems nowhere close for the more reasonable $400-$650 xeons like the D-1520/1540 or the E5-2620 and E5-2630. Sure IBM has better memory bandwidth than the worst intels, but if you want more memory bandwidth per $ or per core then get the E5-2620.
  • JohanAnandtech - Saturday, November 7, 2015 - link

    It is definitely not an alternative for applications where performance/watt is important. As you mentioned, Intel offers a much better range of SKUs . But for transactional databases and data mining (traditional or unstructured), I see the POWER8 as very potent challenger. When you are handling a few hundreds of gigabytes of data, you want your memory to be reliable. Intel will then steer you to the E7 range, and that is where the POWER8 can make a difference: filling the niche between E5 and E7.
  • nils_ - Wednesday, November 11, 2015 - link

    Especially if you're running software that doesn't easily scale out very well these are very competitive. And nowadays even MySQL will scale-up nicely to many, many cores.
  • Gigaplex - Friday, November 6, 2015 - link

    "Less important, but still significant is the fact that IBM uses SAS disks, which increase the cost of the storage system, especially if you want lots of them."

    The Dell servers I've used had SAS controllers, and every SAS controller I've dealt with supported using SATA drives. I'm pretty sure SATA compatibility is in the SAS specification. In fact, the Dell R730 quoted in this review supports SAS drives. There shouldn't be anything stopping you from using the same drives in both servers.
  • JohanAnandtech - Saturday, November 7, 2015 - link

    You are absolutely right about SATA drives being compatible with a SAS controller. However, afaik IBM gives you only the choice between their own rather expensive SAS drives and SSDs. And maybe I have looked over it, but in general DELL let you only chose between SATA and SSDs. And this has been the trend for a while: SATA if you want to keep costs low, SSDs for everything else.
  • TomWomack - Sunday, November 8, 2015 - link

    And mounting a storage server made out of commodity hardware over a couple of lanes of 10Gbit Ethernet if you don't want to pay the exotic-hardware-supplier's markup on disc.
  • Gunbuster - Friday, November 6, 2015 - link

    SAP and IBM AIX servers... I guess if you want to blow out your entire IT budget in once easy decision...
  • Jake Hamby - Friday, November 6, 2015 - link

    I forgot to mention: VMX is better known as AltiVec (it's also called "Velocity Engine" by Apple). It's a very nice SIMD extension that was supported by Apple's G4 (Motorola/Freescale 7400/7450) and G5 (IBM PPC 970) Macs, as well as the PPC game consoles.

    It would be interesting to compare the Linux VMX crypto acceleration to code written to use the newer native AES & other instructions. In x86 terms, it'd be like SSE-optimized AES vs. the AES-NI instructions.
  • Oxford Guy - Saturday, November 7, 2015 - link

    I had a dual 450 MHz G4 system and AltiVec was quite amazing in iTunes when doing encoding. Between the second processor and the AltiVec putting things into ALAC was very fast (in comparison with other machines at the time like the G3 and the AMD machines I had).

Log in

Don't have an account? Sign up now