IBM Flexes Java Muscles on Power7 Iron
March 22, 2010 Timothy Prickett Morgan
The benchmark test results are starting to trickle out on IBM‘s Power7 servers running the i for Business operating system. Last week, I told you about the SAP data warehousing tests that Big Blue did to compare the new Power 750s to older Power-based systems running i 6.1. This week, let’s take a look at the SPECjbb2005 benchmark from the Standard Performance Evaluation Corp. The Power 750 did alright compared to its AIX and Linux brethren, best I can figure.
The SPECjbb2005 benchmark is a tweaked version of the Transaction Processing Council‘s TPC-C online transaction processing benchmark test that has the I/O requirements for the test removed and a consistent codebase for the benchmark written in Java instead of any old language that vendors might want to use to run the TPC-C test on bare metal instead of within Java Virtual Machines. You can see the full listing of machines tested using the SPECjbb2005 benchmark here. For the purposes of this story, I am going to just stick with the most recent Power-based machines IBM has tested using SPECjbb2005.
First, no doubt because it is still working on tuning on the machines and waiting to see where high-end Itanium 9300, Xeon 7500, and Opteron 6100 systems end up, IBM has not yet tested that Power 770 or 780 kickers to the Power6-based Power 570s on the SPECjbb2005 test. The good news is, the Power 750, which is the middle of the Power7 lineup, has plenty of oomph when it comes to Java workloads. Thanks not only to the fact that the Power7 chips have eight cores instead of two, like the Power6 chips, but because the cores have four threads each instead of two. That’s a factor of eight increase in threads per chip, and Java was designed to scale horizontally across threads with multiple JVMs to scale workloads. Java loves chips like the Power7. And that 32 MB of embedded DRAM L3 cache memory on the Power7 chips is another thing that JVMs and Java applications love to have.
The Power 750 running i 6.1.1 that IBM ran the SPECjbb2005 test on was configured with the 3.3 GHz version of the chip. The box has two chips, for a total of 16 cores on two processor cards. That gave IBM enough threads to start up 16 of the 32-bit JVMs that run inside the PASE AIX runtime environment. (Remember, IBM doesn’t have a native 64-bit Java for the OS/400-i operating system any more.) Each processor card was configured with 64 GB of memory, for a total of 128 GB, or 8 GB per JVM. When executing the SPECjbb2005 test, the Power 750-i 6.1.1 combo was able to process 976,223 business operations per second, or BOPS.
IBM did not test the same configuration with AIX and Linux, but rather doubled up the box in terms of processor cards and also moved to the faster 3.55 GHz Power7 chips. (Yes, IBM indeed does not want to make it easy to do any direct comparisons.) This is a fully loaded Power 750 configuration, with four processor cards, 32 cores, and 128 threads. IBM slapped 256 GB of main memory in the box and booted up 32 JVMs using the native 32-bit JVM for AIX; the machine was able to handle 2,478,929 BOPS, or about 77,467 BOPS per JVM, compared to 61,014 BOPS per JVM on the i 6.1.1 setup. The same fully loaded Power 750 configured with Novell‘s SUSE Linux Enterprise Server 11 operating system, using IBM’s own 32-bit JVM for Linux and running 32 JVMs, was able to handle 2,410,483 BOPS, or 75,328 BOPS per JVM.
If Java performance scales with the Commercial Performance Workload (CPW) ratings IBM gives to gauge the relative performance of OS/400 and i workloads, then a Power 750 running i 6.1.1 and using the fully loaded (instead of half loaded) server and using the faster 3.55 GHz parts (instead of the 3.3 GHz ones) should be able to do about twice the work of the i box IBM tested. That would put it at around 1,992,471 BOPS. That would seem to indicate that there is a performance penalty that i shops are paying by using the 32-bit JVM running in the PASE AIX runtime. It looks like about 20 percent by my math.
That’s a little worse than the 14.2 performance hit IBM showed in earlier SPECjbb2005 tests. As you can see from this table of SPECjbb2005 results on Power6 and Power7 iron, an eight-core Power 570 machine using 4.7 GHz Power6 chips and running i5/OS V5R4 was able to do 345,809 BOPS, compared to 402,923 BOPS for the same machine running AIX. IBM never explains these differences, and does everything in its power to avoid running benchmarks that would even allow such comparisons. (For instance, testing a 32-core Power 595 running i5/OS and a 32-core Power 570s, which have very different technical and economic properties and a little looser symmetric multiprocessing, running AIX and Linux. Just to dissemble a little while appearing helpful.) IBM tested an AIX box with all 64 cores turned on, but the i box only had 32 turned on. So forget about direct comparisons.
If you look at that table again, there is an interesting thing to note. No matter what operating system is running on the Power Systems machines, the Power7 boxes are showing a much better ratio between CPW on i or rPerf on AIX or Linux ratings and SPECjbb2005 BOPS. The machines are better, in general, at running Java. In some cases, the Power 750s are remarkably more efficient than the Power 550s they replace, and there is every reason to believe that the Power 770s and 780s will also do a better job in terms of Java efficiency, thanks to that extra cache and those extra cores, no doubt. Take a look at the Power 550 test in the table. That box, with four Power6 processors (that’s eight cores and 16 threads running at 4.2 GHz) was able to do 350,642 BOPS. That works out to 43,830 BOPS per core. (This is a much better metric than BOPS per JVM, since you pay for iron on a per-core basis.) The Power 750 running AIX is delivering 77,467 BOPS per core. That’s a 77 percent increase in BOPS per core while clock speeds were reduced by 15.5 percent. That’s pretty impressive, and shows that the Power7 machines are more balanced at least as far as Java workloads are concerned. The BOPS per core trend is not perfect, of course. But it is moving in the right direction.
The question I have for all of you is this: Rather than running Java Virtual Machines on top of i 6.1.1 and paying out for a full operating system license or even the Application Server variant, given the performance penalty that seems to be there, doesn’t it make sense to run JVMs in an AIX or Linux partition and leave the database and RPG applications in the i partitions? I am not sure what the penalty is for running JVMs and linking databases over the Virtual LAN features of OS/400 and i, but if it falls short of the 15 to 20 percent penalty there seems to be for running Java on i, it’s something to think about.
Of course, it goes without saying that I think IBM should have better performance for Java applications on the i for Business platform. Like it used to a decade ago when it was called OS/400 and sported a 64-bit JVM. But I guess I went and said it anyway.