Skip to main content

Architectural Enhancements for a Wide Variety of Workloads

How does IBM Z support software for application development?

Blue, yellow, and purple vector cubes floating on a dark blue background with IT Trendz text header.

With this post, I continue my exploration of IBM Z and its powerful support for some of the most important software for application development. Last week, I started with series with a post named “Special Hardware Support of Software.” In one of the technical presentations supporting the z14 mainframe rollout, I read this item on page 17:

“Micro-architectural and architectural enhancements for wide variety of workloads
        - BCD for COBOL, garbage collection for Java, and compression for databases, …”

This is certainly an interesting item relating to COBOL, Java and databases. What does it mean? Let’s explore. 

BCD for Cobol

Binary-coded decimal (BCD) is a kind of binary encodings of decimal numbers supported in programming languages and computer hardware instructions. As I wrote about last week, z14 extends the single instruction multiple data (SIMD), introduced in the z13 mainframe, with new z14 SIMD instructions to support BCD operations. The significance of this is that the new z14 SIMD capabilities will improve all packed decimal facilities, especially for COBOL applications and other languages such as Java, C++ and PL/1 using new compilers optimized for the new z14 environment. There’s great potential to give a significant performance boost for all financial company operations worldwide.
 

IBM Compilers 

“The Invisible Thread,” an IBM Community post by Shereen Ghobrial, summarizes the z14 architecture uplifts that have a big impact on IBM compilers. Let me summarize the main points:

COBOL

The new Enterprise COBOL v6.2 compiler fully exploits the Vector Packed Decimal Facility, which leads to significant performance improvements. 
  • 10 percent CPU reduction on average over COBOL V6.1  
  • 16 percent CPU reduction on average over COBOL v5.2
  • 47 percent CPU reduction on average over COBOL v4.2
 
For decimal and floating point intensive applications, the Enterprise COBOL V6.2 delivers the following.
  • Up to 38 percent CPU reduction over COBOL v6.1
  • Up to 67 percent CPU reduction over COBOL v5.2
  • Up to 94 percent CPU reduction over COBOL v4.2
PL/I

“By exploiting the new performance features in z14, Enterprise PL/I v5.2 reduces CPU usage over the same applications built with PL/I v5.1 by up to 40 percent for decimal intensive applications, and an average of 10 percent for compute intensive applications."

C/C++

The z/OS v2.3 XL C/C++ compiler has been modified to take advantage of all performance features in z14 leading to significant performance improvements.

  • Floating point intensive applications: Its use results in a 13 percent reduction in CPU time on average
  • Compute intensive applications: Its use resulted in an 8 percent reduction in CPU time on average
It makes a lot of sense to use these compilers immediately with the z14. Ghobrial points out that you don’t even need to recompile the entire application. You can selectively compile only the performance sensitive parts: the parts that have the highest CPU consumption.

Garbage Collection for Java

In the z14 technical presentations, this is referred to as pause-less garbage collection for enterprise scale JAVA applications. This involves the Guarded Storage Facility, used by runtime environments that use garbage collection like Java to increase efficiency of the collection.
 
Pause-less Garbage Collection (PGC) is a new option in the 64-bit IBM SDK for Java. The goal of the new mode is to reduce the impact of garbage collection phases and improve the throughput and consistency of response times for Java applications. Before the invention of PGC, garbage collection had the impact of stopping all threads, effectively bringing application processing to a stop. PGC, by making use of the Guarded Storage Facility in IBM z14 hardware, allows more parallel execution of GC-related processing with application code. PGC is important for applications with strict response-time agreements and applications with large Java heaps.
 

Compression for Databases

In the paper “New Database Compression Assists in the IBM z14 Processor,” the authors describe how the IBM z14 processor, together with Db2 for z/OS Version 12, can improve data compression rates resulting in reduced data storage requirements and costs for large databases.  
 
The new processor improves on the compression hardware accelerator available in earlier generations of IBM Z by adding new hardware algorithms that increase the compression ratio and extend the applicability to additional data structures in Db2 for z/OS databases. The implementation uses a new entropy coding step employed after Ziv–Lempel compression. What’s the impact?
  • Reduces the size of data compressed with the prior algorithms by an average of 30 percent 
  • Enables database index compression, reducing index sizes by roughly 30 percent  
The bottom line: An overall improvement of 30 percent of the database size for many applications. Also, there are benefits in storage requirements, input/output bandwidth and buffer pool efficiency.

z14 and Compilers and Applications

I’m glad that I explored some of the specific architectural enhancement in z14 that have helped the performance of applications. It’s remarkable that the rollout of the enhancements was so complete from making the different facilities (such as SIMD, PGC and Compression through entropy encoding) available and well documented so they could be implemented quickly by companies and their development teams. 
 

Delivering the latest technical information to your inbox.