Background
Java1, 2 is a programming language used for developing applications that can run on any operating system (OS). To do that, Java applications need to be compiled to bytecode.3 This bytecode can then be run on any Java Virtual Machine (JVM)4 without recompiling. To run Java applications on OSs like Windows* and Linux*, a Java Runtime Environment (JRE)7 must be installed.
The advantage of Java-based applications is that their performance can be improved without having to change code or even recompile when the underlying Java Virtual Machine (JVM) is optimized for the platform the application is running on.
The next sections discuss improvements made in JVM for Intel® Xeon® processor E7 v3 and show one example Java-based application, TYDIC* Online Charging System (OCS), and how its performance improved on Intel® Xeon® processor E7-8800 v3.
JVM improvement for Intel® Xeon® processor E7 v3
Intel has been working closely with Oracle to optimize the JVM for Intel Xeon processor E7 v3 product family. This section lists some new features the Intel Xeon processor E7 v3 has that benefit Java performance compared to the previous Intel Xeon processors (E7 v2).
- More cores and larger cache: Intel Xeon processors E7 v3 have more cores and larger cache than previous generations of Intel Xeon processors like E7 v2. For example, Intel Xeon processor E7-8890 v3 has 18 versus 15 cores and 45MB versus 37.5MB in cache compared to the Intel Xeon processor E7-4890 v2.
- Better memory bandwidth: Intel® QuickPath Interconnect Technology (Intel® QPI)8 and integrated memory controllers deliver fast core-to-core and core-to-memory communications resulting in improved performance for Java applications that are memory-bound. Also, the garbage collection (GC) processes are improved as well. Intel Xeon processor E7 v3 has 102GB/s versus 85GB/s and 9.6GT/s versus 8GT/s compared to the Intel Xeon processor E7-4890 v2.
- Speedup array and string operations: Intel® Advanced Vector Extensions 2 (Intel® AVX2) gives vectorization benefits that improve performance of array and string operations. Intel AVX2 is supported in all versions of JDK8.9
- Hardware support for best-effort “transactional memory”:10 Multithreaded Java applications with lock contention will greatly benefit from Intel® Transactional Synchronization Extensions (Intel® TSX)11. When the -XX:+UseRTMLocking option is run at the command line, JVM will automatically use this feature, thus improving the performance of the Java applications. Intel TSX is supported in JDK8u20 onwards.
The next section shows how TYDIC OCS benefits when run on a Intel Xeon processor E7-8890 v3-based system.
TYDIC OCS
An OCS is software that provides a Communications service provider the ability to charge their customers, in real time, based on service usage.5
Figure 1 shows TYDIC’s approach of evolving from an application running on a large, monolithic RISC-based system to one that utilizes a distributed Intel Xeon processor-based architecture.
Figure 1. Comparison between RISC and Intel® Xeon® processor-based OCS architectures
The new architecture encompasses three trends:
- Using 4-socket Intel Xeon processor E7 platforms as ‘node of choice’
- Re-architecting the OCS application to a cloud architecture:
- The application assumes shared responsibility for high availability/uptime with the Intel Xeon processor E7 platform (not just relying on the historic RISC platform).
- The application provides the means for scaling to customer demands just by adding another node as demand grows.
- Embracing “in-memory” by forming a memory data-grid across the Intel Xeon processor E7 platforms for very fast transactional processing.
Performance test procedure
To show how the OCS application benefits from being run on an Intel Xeon processor E7 v3 system, we performed tests on two platforms. One system was equipped with Intel® Xeon® processor E7-8890 v3 and the other with Intel® Xeon® processor E7-4890 v2.
This workload is based on data grid6 technology and purely in-memory computing (all business data are kept in memory!) and so will benefit from the large memory capacity and bandwidth on Intel Xeon processor E7 v3 platform. And in-memory computing could fully saturate CPU utilization by removing IO bottlenecks and take advantage of more cores in Intel Xeon processor E7 v3.
Note: This test is about comparing the performance of TYDIC OCS on two systems: one equipped with Intel Xeon processor E7-8890 v3 and the other with Intel Xeon processor E7-4890 v2. The test is not comparing performance of JVM on these systems.
Test configurations
System equipped with Intel Xeon processorE7-8890 v3
- System: Pre-production
- Processors: Intel Xeon processor E7-8890 v3 @2.5GHz
- Last-level Cache: 45MB
- Cores per socket: 18
- Memory: 128GB DDR4-1600MHz
System equipped with Intel Xeon processorE7-4890 v2
- System: Pre-production
- Processors: Intel Xeon processor E7-4890 v2 @2.8GHz
- Last-level Cache: 37.5MB
- Cores per socket: 15
- Memory: 128GB DDR3-1333MHz
Operating System: Red Hat* Enterprise Linux* 7
Application: OCS 2.1
Test results
Figure 2 shows the results on a system equipped with the two versions of Intel Xeon processors. Performance improved by 1.22X due to faster DDR4 memory, more cores, and the evolved micro-architecture on the Intel Xeon processor E7-8890 v3.
Figure 2. Comparison between Intel® Xeon® processor E7-8890 v3 and Intel® Xeon® processor E7-4890 v2
Note: Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more information go to http://www.intel.com/performance
Conclusion
The JVM included in the version of JDK starting with JDK8u20 onwards is optimized to take advantage of many new features of Intel Xeon processor E7 v3. More cores, faster memory, and features like Intel AVX2 and Intel TSX enable Java applications that are memory bound, or have issues like heavy array or string operations or lock contention, running on JVM to improve their performance without having to change code or even recompile.
References
[1] http://en.wikipedia.org/wiki/Java_%28programming_language%29
[2] https://java.com/en/download/faq/whatis_java.xml
[3] https://en.wikipedia.org/wiki/Java_bytecode
[4] http://en.wikipedia.org/wiki/Java_virtual_machine
[5] http://en.wikipedia.org/wiki/Online_charging_system
[6] http://en.wikipedia.org/wiki/Data_grid
[7] http://searchsoa.techtarget.com/definition/Java-Runtime-Environment
[8] http://www.intel.com/content/dam/doc/white-paper/quick-path-interconnect-introduction-paper.pdf
[9] https://en.wikipedia.org/wiki/Java_Development_Kit
[10] https://en.wikipedia.org/wiki/Transactional_Synchronization_Extensions
[11] https://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell
Notices
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.
This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps.
The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are available on request.
Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548-4725 or by visiting www.intel.com/design/literature.htm.
Intel, the Intel logo, and Intel Xeon are trademarks of Intel Corporation in the U.S. and/or other countries.
*Other names and brands may be claimed as the property of others
© 2015 Intel Corporation.