Apache Spark 2.1 Benchmarking

Apache Spark is the poster child of Big Data processing. Speeding up Big Data applications is the top priority project at the university lab I work for (Sizing Servers Lab of the University College of West-Flanders), so we produced a benchmark that uses many of the Spark features and is based upon real world usage.

The test is described in the graph above. We first start with 300 GB of compressed data gathered from the CommonCrawl. These compressed files are a large amount of web archives. We decompress the data on the fly to avoid a long wait that is mostly storage related. We then extract the meaningful text data out of the archives by using the Java library "BoilerPipe". Using the Stanford CoreNLP Natural Language Processing Toolkit, we extract entities ("words that mean something") out of the text, and then count which URLs have the highest occurrence of these entities. The Alternating Least Square algorithm is then used to recommend which URLs are the most interesting for a certain subject.

In previous articles, we tested with Spark 1.5 in standalone mode (non-clustered). That worked out well enough, but we saw diminishing returns as core counts went up. In hindsight, just dumping 300 GB of compressed data in one JVM was not optimal for 30+ core systems. The high core counts of the Xeon 8176 and EPYC 7601 caused serious performance issues when we first continued to test this way. The 64 core EPYC 7601 performed like a 16-core Xeon, the Skylake-SP system with 56 cores was hardly better than a 24-core Xeon E5 v4.

So we decided to turn our newest servers into virtual clusters. Our first attempt is to run with 4 executors. Researcher Esli Heyvaert also upgraded our Spark benchmark so it could run on the latest and greatest version: Apache Spark 2.1.1.

Here are the results:

Apache Spark 2.1.1

If you wonder who needs such server behemoths besides the people who virtualize a few dozen virtual machines, the answer is Big Data. Big Data crunching has an unsatisfiable hunger for – mostly integer – processing power. Even on our fastest machine, this test needs about 4 hours to finish. It is nothing less than a killer app.

Our Spark benchmark needs about 120 GB of RAM to run. The time spent on storage I/O is negligible. Data processing is very parallel, but the shuffle phases require a lot of memory interaction. The ALS phase does not scale well over many threads, but is less than 4% of the total testing time.

Given the higher clockspeed in lightly threaded and single threaded parts, the faster shuffle phase probably gives the Intel chip an edge of only about 5%.

Java Performance Floating Point performance
Comments Locked

219 Comments

View All Comments

  • tmbm50 - Wednesday, July 12, 2017 - link

    Windows licensing is irrespective of virtualization.

    If you run a vm with a single vCPU on a server with 32 cores, you must license all 32 cores. KVM, ESXi...doesnt matter.

    I'm sure most folks ignore that point in the license but if your an enterprise and get audited it's enforced.
  • nils_ - Wednesday, July 19, 2017 - link

    Oracle does the same, and if your environment supports migration to other hosts you'd have to license those too (just in case). It's sort of criminal really.
  • pepoluan - Friday, July 28, 2017 - link

    I wonder, though, how does AWS managed to offer per-instance Windows licensing for EC2?

    Because, by that logic, EVERY Windows instance needs to be licensed against ALL cores in an Availability Zone...
  • Rοb - Sunday, July 23, 2017 - link

    From very brief research it looks like for you're in for $6K per 16 Cores for the Datacenter Edition, trying to run the Software on a 4S 32 Core would cost 64x as much (excluding any Bulk Buy pricing you might be able to request).

    If you bought SM Fat Twins everything would be separated with less loss of density; for the money saved on Licensing would it pay off.

    You want to conduct your business lawfully and can charge the customer what it costs plus profit - that's what it costs, want something different the price will probably be different.

    Most Software that has per Core Licenses costs a fair bit and has thought it out so someone can't (lawfully) buy a single License and then run the Software on a much more powerful machine.

    Take a deep breath and consider that if you ran it on a Phi x200 in x86 Mode that it would run slowly and you'd be charged for 256 Cores per CPU - so don't do that.

    I don't want to sound unsympathetic but if the Vendor didn't make money then they wouldn't have incentive to write the Software.

    Convince your customers to switch to free Software or for those prices write your own.

    What is the complaint exactly, have a Rack Unit Fee, an Electricity Fee, a CPU Fee, a Software Fee, etc., and tell the customer that XYZ costs that much but if they get WYZ it will only cost so much instead.

    Assuming everyone obeys the Law and pays the same for Electricity, Cooling, Electronics, Software and Labor then it's only the percentage of Profit where the difference in price lies - or in other words someone will always charge less (and not be 'audited' / as honest / as intelligent and hard working as your Team).

    Let the people who you buy your Software from know your complaint and options, we can't be of much more help to you other than the years of service some of us devote to free and pay Software.
  • rocky12345 - Wednesday, July 12, 2017 - link

    Great article as always I found it very well written and there was a lot of information to take in. It was good to see AMD chips doing this good. Bang for the buck seems to be in AMD's court in both the server market and consumer markets now.

    To those saying oh in the real world big companies would not be upgrading there software to the latest because of money that may be lost. You guys have a solid point there. BUT these tests are not being done in a real world company that depends on their servers to be up 100% of the time. These are just in house tests done to benchmark the new CPU's so yes the latest and greatest versions of the software can be & should be used. This shows exactly what the new CPU's can do when the software is updated to support the latest and greatest hardware. DO you actually think a huge company when buying new server clusters asks for software that is 5 -10 years olds I am fairly sure they do not. They want the most update to date software that is optimized for the new hardware they are spending big bucks on. They want it to be 100% stable and they also want the latest and greatest because of the fact that they probably will never update the software again or at least not for 5-7 years or more. So testing with old builds of software is very unrealistic and does not show the hardware at it's best and also not what a company is looking fro when buying new hardware.

    With that said this is still a great write up and deserves a lot of praise.
  • rahvin - Wednesday, July 12, 2017 - link

    I think it's a great comparison article too, you know it's pretty unbiased when both the Intel and AMD fanboi's are out in force criticizing the article for bias.

    My main comment is that Intel is crazy with those prices on the platinum chips. Those prices are easily two times the previous generation. This is the result of AMD being absent from the server market, that is Intel running processor prices up to the prices that Sun, IBM and HP used to charge in the worst of the enterprise server days. $13k for a Xeon, you've got to be shitting me.

    Here's to hoping AMD mops the floor with them and causes prices to crater just like the last time Opteron was competitive. I remember the days when the highest end Xeon was less than $1000. These days the bottom end Xeons are pricing at $1000 and the high ends are 13X that much. Again, I pray AMD can get 25% market share and knock these prices back into reasonable territory. I also hope AMD makes a ton of money and can keep it up with competitive designs (even if it is doubtful because their management is garbage).
  • Rοb - Sunday, July 23, 2017 - link

    Rahvin writes: "$13K for a Xeon ...".

    There's more to it than that, read the Fine Print; Intel has all kinds of expensive/inexpensive (depending upon your point of view).

    See this Comparison: https://ark.intel.com/compare/120498,120499 .

    Which is "less expensive":

    Intel® Xeon® Platinum 8180M Processor (28 Cores) for $13,011.00

    or

    Intel® Xeon® Platinum 8156 Processor (4 Cores) for $7,007.00

    So which is less 13 or 7 vs. 28 or 4?

    You can't just look at one number.

    There are other Technical Points, AMD doesn't have: AVX-512, OmniPath 400Gbps, 8-way Motherboards, etc.

    If you MUST have what Intel offers then there's only one choice, if you can work around those things and get along with AMD then you're saving money.

    If you wanted bleading edge performance then you'd be looking at Spark or Power; some complain that would deny the ability to play Crysis (and that due to their importance people stay up worrying about their issues).

    Which is "best" is often easy to say given a narrow definition, which is best in every possible circumstance can be more of a challenge.

    Disclaimer: I don't work at either place and intend to buy Epyc 7nm.
  • hahmed330 - Wednesday, July 12, 2017 - link

    Jolly Good! AMD just smoked Intel's bacon!
    Impressive showing! Outstanding just outstanding!
  • Shankar1962 - Wednesday, July 12, 2017 - link

    Yeah thats why AMD is still in losses and Intel is making net profits of ~$11billion plus each year
    They are gaining share by trying to sell their so called top products for cheap prices
    Wondering who is getting smoked
  • PixyMisa - Thursday, July 13, 2017 - link

    Epyc has been out for three weeks.

Log in

Don't have an account? Sign up now