AMD's Quad-Core Barcelona: Defending New Territory
by Johan De Gelas on September 10, 2007 12:15 AM EST- Posted in
- IT Computing
64-bit Linux Java Performance: SPECjbb2005
SPECjbb needs good integer performance and an excellent memory subsystem, especially if you test with several instances as we do. So what integer improvements could help Barcelona here?
Fetching 32 bytes instead of 16 bytes (Intel Core, AMD previous Opterons) makes decoding a bit faster as the average decoding bandwidth increases, but will only help performance when the CPU is able to calculate many instructions per cycle, which is not the case in a lot of applications, including SPECjbb (IPC of 0.2 - 0.5). It might help with some branch intensive code however (unaligned branch targets).
The biggest improvement for integer code and especially code that accesses the memory a lot is the fact that finally AMD has an architecture that can reorder loads ahead of a load and in some cases a store. This feature has been lacking in the AMD family, while it has been present in the Intel CPUs since the Pentium Pro. It makes the newest AMD quad CPUs more "out of order" than previous CPUs; Intel's Core architecture is still a lot more flexible in this, but the AMD Barcelona should like the SPECjbb benchmark quite a bit: it has more memory bandwidth than the Core CPUs have available, and the gap in OOO integer processing with Core has been reduced quite a bit.
SPECjbb2005 from SPEC (Standard Performance Evaluation Corporation) evaluates the performance of server side Java by emulating a three-tier client/server system with emphasis on the middle tier. Instead of testing with a separate possibly disk intensive database system, SPECjbb uses tables of objects, implemented by Java Collections. A longer description can be found here.
Again, it is not our objective to show the best possible scores. Very few people will take the time to fully tune the JVM and take the risk that some of the ultra aggressive optimizations backfire. So we tested with some decent but rather generic tuning that we could use on all systems. The JVM is Sun's version 1.5.0_08, which allows us to compare scores with previous results as we have had only a few days to test the newly arrived systems.
We tested SPECjbb2005 with four application instances. Using NUMActl, a clever utility written by Andi Kleen, we were able to bind each Java application to a separate node. We didn't bind instances to CPUs on the Intel platforms (though it is possible with taskset) as it gives lower performance. The parameters in bold show the actual JVM optimizations.
On the Opteron we used:
The newest Opteron does well, and performs like a 2.4GHz Clovertown. Note that it cannot outperform the old four socket (but more expensive) 880 Opteron as this platform has even more bandwidth available and runs at an almost 20% higher clock speed. Still, we can conclude that the improved memory subsystem does pay off in SPECjbb. That's a good sign for the majority of server applications, but what about the HPC world?
SPECjbb needs good integer performance and an excellent memory subsystem, especially if you test with several instances as we do. So what integer improvements could help Barcelona here?
Fetching 32 bytes instead of 16 bytes (Intel Core, AMD previous Opterons) makes decoding a bit faster as the average decoding bandwidth increases, but will only help performance when the CPU is able to calculate many instructions per cycle, which is not the case in a lot of applications, including SPECjbb (IPC of 0.2 - 0.5). It might help with some branch intensive code however (unaligned branch targets).
The biggest improvement for integer code and especially code that accesses the memory a lot is the fact that finally AMD has an architecture that can reorder loads ahead of a load and in some cases a store. This feature has been lacking in the AMD family, while it has been present in the Intel CPUs since the Pentium Pro. It makes the newest AMD quad CPUs more "out of order" than previous CPUs; Intel's Core architecture is still a lot more flexible in this, but the AMD Barcelona should like the SPECjbb benchmark quite a bit: it has more memory bandwidth than the Core CPUs have available, and the gap in OOO integer processing with Core has been reduced quite a bit.
SPECjbb2005 from SPEC (Standard Performance Evaluation Corporation) evaluates the performance of server side Java by emulating a three-tier client/server system with emphasis on the middle tier. Instead of testing with a separate possibly disk intensive database system, SPECjbb uses tables of objects, implemented by Java Collections. A longer description can be found here.
Again, it is not our objective to show the best possible scores. Very few people will take the time to fully tune the JVM and take the risk that some of the ultra aggressive optimizations backfire. So we tested with some decent but rather generic tuning that we could use on all systems. The JVM is Sun's version 1.5.0_08, which allows us to compare scores with previous results as we have had only a few days to test the newly arrived systems.
We tested SPECjbb2005 with four application instances. Using NUMActl, a clever utility written by Andi Kleen, we were able to bind each Java application to a separate node. We didn't bind instances to CPUs on the Intel platforms (though it is possible with taskset) as it gives lower performance. The parameters in bold show the actual JVM optimizations.
On the Opteron we used:
numactl --cpunodebind=$node --membind=$node -- java -cp jbb.jar:check.jar -Xms2g -Xmx2g -Xmn1g -Xss128K -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:+UseParallelGC spec.jbb.JBBmain -propfile SPECjbb.props -id $x
On the Xeons we used:
java -classpath jbb.jar:check.jar -Xms2g -Xmx2g -Xmn1g -Xss128K -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:+UseParallelGC spec.jbb.JBBmain -propfile SPECjbb.props -id $x
Below you can find the final score reported by SPECjbb2005, which is an average of the last four runs.The newest Opteron does well, and performs like a 2.4GHz Clovertown. Note that it cannot outperform the old four socket (but more expensive) 880 Opteron as this platform has even more bandwidth available and runs at an almost 20% higher clock speed. Still, we can conclude that the improved memory subsystem does pay off in SPECjbb. That's a good sign for the majority of server applications, but what about the HPC world?
46 Comments
View All Comments
erikejw - Tuesday, September 11, 2007 - link
I take back what I said.I mixed up 3 different reviews that does not correlate and is not comparable.
I did not realize that until now even though I looked at them again.
Optimizations put off on AMD processors was just hearsay and likely with the results presented but since I was wrong about the results that part is probably wrong too.
So now everything I have to say is, great article :)
Now I look forward to the tests with the 2.5GHz part and some overclock on it to see what a 2.8 or even a 3GHz part would do.
kalyanakrishna - Tuesday, September 11, 2007 - link
Sorry ... with all the discussion, your methodology is incomplete and leading to a biased result. Maybe there is code that is optimized for Intel processor - but the focus of the article is performance - thats what you intended it to be ... if not, please redo the article, change your deductions and focus it on code compatibility. No one measuring performance on their systems will use Intel Xeon optimized code on AMD processors. There are bunch of other compilers and performance libraries available. If not, please use a compiler that WILL optimize for both - pathscale, gcc and more ...I agree with your processor frequency aspect ... however, neither did Intel have a high speed freq on the launch date. The way it should have been presented is "at same frequency ... there is not much difference in performance" "at higher clocks, Intel does have advantage that comes at a price" Is this the same deduction you brought out in your article? Far from it ... do you concur?
And your reasoning that you didnt have time to optimize the code is not acceptable. What was the point of this article - throw out some incomplete article on the day of the launch so everyone doesnt think AnandTech doesnt have a comment on Barcelona or maintain your high standards and put out a well written, mature and complete article based on results based from a rock solid testing methodology with critical analysis?
The article was leaning towards a dramatic touch than presenting a neutral analysis. And, please stop saying Linpack is Intel friendly. The code is NOT, the way you compiled it is optimized for LinPack!! There is a HUGE difference. A code can only be Intel "friendly" when it is written with special attention to make sure it fully exploits all the features that Xeon has to offer and not necessarily by any other processors. And, if you do read my email to you - you will notice my stand on that point and lot more.
So, I kindly request you to immediately take down this article with a correction or redo your article and change the focus. Maybe you had a different idea in your mind when writing it ... but the way it was written is not what you said you wanted it to be. All the comments you made now are not brought out in the article.
Thank you for your time.
kalyanakrishna - Tuesday, September 11, 2007 - link
And of course, we didnt even get to the point where the test setup says "BIOS Note: Hardware prefetcing turned off" but in your analysis section it says"but masterly optimization together with hardware prefetching ensures most of the data is already in the cache. The quad-core Xeon wins again, but the victory is a bit smaller: the advantage is 20%-23%."
That says enough about the completeness and accuracy of your article. The article is full of superlatives like masterly, meticulous to describe Intel processors. The bias cant be any more blatant.
Now, will you please take it down and stop spreading the wrong message!!! There is nothing wrong in saying it was an incomplete article and in the interests of accuracy we would like to retract our claims!! Stop sending the wrong message to your huge reader base and influence their opinion of a potentially good product!
fitten - Tuesday, September 11, 2007 - link
Potentially... but not yet a good product, IMO. Hopefully AMD will have another stepping out sometime by the end of the year that may actually be competitive. As of right now, Barcelona isn't competitive with Intel offerings. The problem is that the target is moving as Intel will be releasing new chips by the end of the year.As far as Intel compilers are concerned, you do realize that Intel's compilers are better than GCC (which is NOT known for agressive optimizations and stellar performance) and are downloadable from their site. Code compiled with Intel compilers tends to execute faster on both Intel and AMD processors than code compiled with GCC in many cases.
As far as accuracy of the various reviews... it's AMD's fault for getting only a few systems to a few reviewers only 48 hours before the launch date. I believe this was intentional in order to delay any thorough testing of Barcelona in the short term. Plus, there's the whole bit about AMD requiring that reviewers submit reviews to AMD for sanitizing before publishing them, as well. I'm quite convinced that AMD knew (and knows) that Barcelona is a turd and are just trying to buy time by various nefarious methods so that they can have a little more time to get their act together. If it weren't for investors and the world pushing AMD to actually release on their (much delayed) launch date, I'm quite sure AMD would have rather waited a few months so they'd have a better stepping to debut.
kalyanakrishna - Tuesday, September 11, 2007 - link
This is exactly what I am talking about ... see the comments on Digg:http://www.digg.com/hardware/Finally_AMD_s_Barcelo...">http://www.digg.com/hardware/Finally_AMD_s_Barcelo...
Now, please retract your observations.
kalyanakrishna - Wednesday, September 12, 2007 - link
Johan,Comment by swindelljd below ...
I believe you underestimated the impact your article has on purchasing decisions of the customers. :)
I hope customers do continue to look at AnandTech as a source of impartial, genuine and correct data on performance of new technologies.
As Spiderman's uncle would say "With great power, comes great responsibility". :) :)
swindelljd - Thursday, September 13, 2007 - link
Yes, I would say anandtech.com has the most comprehensive, thoughtful, well organized, un-biased and current analysis of any site/content that currently exists. Many other sites even reference or simply use anandtech.com's analysis barely augmenting with their own.I have definitely used them in the past for both personal purchases (enthusiast OC'ing) and business purchases of my production hardware environment. In each case I've used multiple sources but always find myself returning to anandtech.com.
I'd hate to see them delay the release of an article just because there was "just one more test to run". Like many things in life, sometimes it's more important to simply work with the information at hand (even if not quite complete) than to wait to make a decision. Some might call that "analysis-paralysis".
Ultimately it's up to me when making purchasing decisions to weigh all the information and consider how much issues such as you pointed out regarding "not quite complete" analysis would impact a real world scenario.
I applaud anandtech.com for all the work they do (and the LONG hours they must put in) in quantifying what in some cases is unquantifiable.
Now back to my original question - why do the Woodcrest/MySQL benchmarks taken approx 14 months apart vary by so much and for the worse? Did the benchmark used change or am I just misreading the benchmark?
thanks,
John
kalyanakrishna - Thursday, September 13, 2007 - link
John,Its great that you trust the site content so much. I know many people who do. That is why I was shocked to see the shortcomings in the article ... most of which are, I must say, basic to some extent.
I myself have been reading the site since many years and I know many colleagues who refer this site for just about anything ... hence my stand that they realize the importance of their work and publishings.
Maybe its your fondness for the site ... but the specific comments I made are very important and do affect real world results. For any one looking to make a cluster or build an HPC system - thats their real world. Just like database performance is real world to you.
Just to make it explicit... its not a flame war or anything like that ... it is to make sure that the data is correct and a relevant comparison is made.
thanks.
flyck - Tuesday, September 11, 2007 - link
When will there be an update available? :).
JohanAnandtech - Monday, September 10, 2007 - link
2 GHz Intel's were not available to us. And considering AMD's pricepoints, a 2 GHz Opteron 2350 are targetting 2.33 GHz Xeons. It is fairly accepted that AMD has to lure customers with a small price advantage.
Because there is a lot Intel optimized code out there? Do you deny that there are developers out there that use the Intel MKL?