IBM’s sustained investment in improving the performance of statically compiled code is evident in the stellar performance delivered by the new releases of the Enterprise COBOL, Enterprise PL/I, and z/OS® XL C/C++ compilers and the premier release of the XL C/C++ for Linux® on IBM z Systems™ compiler.
Enterprise COBOL for z/OS 5.2
Time proven and reliable, the IBM Enterprise COBOL for z/OS compiler has a long history of delivering new and innovative features to enable developers to modernize key applications, and increase productivity. Enterprise COBOL for z/OS 5.1, available since June 2013, was significantly re-architected to provide advanced COBOL specific optimizations and full z/Architecture® exploitation for IBM eServer™ zSeries® 900 through IBM zEnterprise EC12 via the new ARCH option which enables users to specify the target z/Architecture used by the compiler when optimizing application code. (Read the IBM Systems Magazine article at this link for more information on COBOL 5.1.)
Enterprise COBOL 5.2, planned to GA on February 27, 2015, takes another leap forward in performance by exploiting a variety of enhancements available on IBM z13™ (z13). The ARCH compiler option has been updated to implement ARCH (11) which directs the compiler to use the new z13 instructions and scheduler. The z13 Decimal Floating Point facility has been expanded to deliver increased performance when converting between decimal floating point and packed decimal values. Enterprise COBOL 5.2 takes advantage of this by performing more packed decimal arithmetic in decimal floating point. In addition, Enterprise COBOL 5.2 makes use of the Vector Facility for z/Architecture available on z13 to improve performance when processing certain COBOL statements including many instances of INSPECT … TALLYING andINSPECT … REPLACING.
Through a combination of the more powerful z13 hardware, improved compiler optimization, increased exploitation of the Decimal Floating Point facility and exploitation of the new z13 Vector Facility for z/Architecture, Enterprise COBOL 5.2 delivers up to 14% reduction in CPU time for computationally intensive batch COBOL programs executing on z13 compared to the same programs compiled with the Enterprise COBOL 5.1 GA compiler executing on IBM zEnterprise® EC12 (zEC12). (Note: Users of COBOL 5.1 upgrading to the latest PTF will also see a performance improvement compared to the Enterprise COBOL 5.1 GA compiler as some of the optimizations targeted for 5.2 were backported to the PTF in order to provide additional performance as soon as possible.)
Enterprise PL/I 4.5
Planned to GA on February 27, 2015, Enterprise PL/I 4.5 delivers double digit performance improvement by taking advantage of a variety of enhancements available on z13. The compiler introduces ARCH(11), the new level of the compiler architecture option, which indicates the compiler may use z13 specific instructions and schedule them for optimal performance of code on z13. Enterprise PL/I 4.5 makes use of the z13 Vector Facility for z/Architecture to improve performance when processing many instances of the VERIFY and SEARCH built-in functions. Wider exploitation of the enhanced z13 Decimal Floating Point facility makes it possible for Enterprise PL/I 4.5 to improve performance by executing more packed decimal arithmetic operations using decimal floating point instructions. In addition, Enterprise PL/I 4.5 provides enhanced middleware support including faster code for calls to CICS®.
To sum it up, Enterprise PL/I 4.5 demonstrates up to a 17% reduction in CPU time for compute intensive batch PL/I programs executing on z13, compared to the same programs compiled with the Enterprise PL/I 4.4 compiler executing on zEC12. The significant reduction in execution time is achieved through more powerful hardware, improved compiler optimization, increased utilization of the Decimal Floating Point facility and exploitation of the new Vector Facility for z/Architecture.
z/OS XL C/C++ V2R1M1
The z/OS XL C/C++ compiler has a long history of delivering improved performance with each new release. V2R1M1 – specifically developed for z13 – is no exception. A suite of CPU and compute intensive benchmarks compiled with the XL C/C++ V2R1M1 compiler demonstrates up to 17% throughput improvement on z13 compared to the same benchmarks compiled with the z/OS V2.1 XL C/C++ compiler on zEC12. The significant improvement in throughput is achieved through a combination of more powerful hardware and enhanced compiler optimization technology, including the new ARCH(11) compiler option which enables use of z13 specific instructions and the TUNE(11) option which directs the compiler to generate instruction sequences tuned for best performance on z13.
The z/OS XL C/C++ V2R1M1 compiler empowers the developer to write code that takes advantage of the substantial potential boost in performance available through use of SIMD instructions from the z13 Vector Facility for z/Architecture by providing new vector datatypes and built-in functions.
The high performance mathematics libraries, MASS (Mathematical Acceleration Subsystem) and ATLAS (Automatically Tuned Linear Algebra Software), are made available for the first time on z/OS as part of the V2R1M1 compiler. Two versions of both MASS and ATLAS are included. The first targets zEC12. The second is tuned specifically for optimal performance on z13 and uses Single Instruction Multiple Data (SIMD) instructions to accelerate a key set of functions required for high performance execution of business analytics and other applications. (See the MASS and ATLAS performance claims for details.)
Available as a web deliverable to provide Day 1 support for z13, this compiler has already been used internally to build the IBM CPLEX Optimizer for z/OS and is a major contributor to the performance improvements observed on z13 with the soon-to-be released 12.6.1 version of that product.
XL C/C++ for Linux on z Systems V1.1
The XL C/C++ for Linux on z Systems V1.1 compiler will make its debut appearance concurrently with z13. The new compiler is built on top of the advanced IBM optimization technology already in use by both the IBM Java and Enterprise COBOL compilers. It’s not surprising, therefore, that applications compiled with XL C/C++ V1.1 have demonstrated a significant runtime performance advantage over the same code compiled with equivalent options using both GCC 4.4 and GCC 4.7. More explicitly, a suite of CPU and compute intensive C/C++ benchmarks compiled with the XL C/C++ for Linux on z Systems V1.1 compiler demonstrates up to 10% improved performance compared to the same benchmarks compiled with GCC 4.4 on SLES 11 SP3 and up to 7% improved performance compared to the same benchmarks compiled with GCC 4.7, also on SLES 11 SP3. Note that this is strictly a software improvement as all benchmarks were executed on the same hardware.
Out of the gate, XL C/C++ for Linux on z Systems V1.1 will enable use of the new z13 instructions supported by the available underlying Linux on z Systems distributions through use of the ARCH(11) compile option. In addition, the high performance mathematics libraries, MASS (Mathematical Acceleration Subsystem) and ATLAS (Automatically Tuned Linear Algebra Software) will become available for the first time on Linux on z Systems packaged with XL C/C++ V1.1.
For more information, please visit the IBM z Linux software web page
Authors: Robin Tanenbaum, Allan Kielstra (COBOL), Peter Elderon (PL/I), Dickson Chau (z/OS C/C++),
Catherine Lung (zLinux C/C++)
Neither this document nor any part of it may be copied or reproduced in any form or by any means or translated into another language, without the prior consent of the IBM Corporation. IBM makes no warranties or representations with respect to the content hereof and specifically disclaims any implied warranties of merchantability or fitness of any particular purpose. IBM assumes no responsibility for any errors that may appear in this document. The information contained in this document is subject to
change without any notice. IBM reserves the right to make any such changes without obligation to notify any person of such revision or changes. IBM makes no commitment to keep the information contained herein up to date. Performance data and customer experiences for IBM and non-IBM products and services contained in
this document were derived under specific operating and environmental conditions. The actual results obtained by any party implementing any such products or services will depend on a large number of factors specific to such party’s operating environment and may vary significantly. IBM makes no representation that these results can be expected or obtained in any implementation of any such products or services.
The information in this document is provided “as-is” without any warranty, either express or implied. IBM expressly disclaims any warranties of merchantability, fitness for a particular purpose or infringement.