Learning about ABO

System requirements

  1. What are the minimum hardware requirements for running ABO?

    ABO 2.2 can run on any IBM Z server supported by z/OS 2.3 and later. For a complete list of IBM Z servers, see the link below. The optimized modules that are produced by ABO can run on IBM z14® and later IBM Z servers.
    Learn more

COBOL module requirements

  1. What are the COBOL compiler versions eligible for ABO optimization?

    ABO can optimize programs compiled from VS COBOL II 1.3 up to and including the latest Enterprise COBOL 6 compiler. You can find the full list of eligible COBOL compiler versions at the link below.
    Learn more

Capabilities

  1. What benefit should I expect from ABO on code that is produced by different versions of COBOL compilers?

    Since Enterprise COBOL and ABO use the same underlying optimization technology, the performance of ABO-optimized modules is comparable to that of modules optimized by Enterprise COBOL.

    On IBM z16, IBM Automatic Binary Optimizer for z/OS 2.2 reduces CPU usage by 56% on average for compute intensive applications originally built with IBM Enterprise COBOL for z/OS 4.2. 1

    On IBM z16, IBM Automatic Binary Optimizer for z/OS 2.2 reduces CPU usage by 20% on average for the same compute intensive applications originally compiled with IBM Enterprise COBOL for z/OS 5.2 using the recommended IBM z16 performance options.2

    On IBM z16, IBM Automatic Binary Optimizer for z/OS 2.2 reduces CPU usage by 7% on average for the same compute intensive applications originally compiled with IBM Enterprise COBOL for z/OS 6.1 using the recommended IBM z16 performance options.3

    If you have already compiled your program with the latest COBOL compiler with recommended performance options, your performance should already be maximized and ABO is not designed to get you additional performance gains. Note that the COBOL 6.4 compiler generates a smart binary data file that ABO can utilize to better optimize this program in the future.

    Learn more
    Note: Performance results for applications will vary, depending on the source code, the compiler options specified, and other factors.

    DISCLAIMERS: 1. The performance improvements are based on the geometric mean of IBM internal measurements on IBM z16 running a z/OS 2.4 LPAR with 1 CP and 80GB Central Storage. All benchmarks optimized with IBM Automatic Binary Optimizer for z/OS 2.2 use the new ARCH(14) option and default settings for all other options. The input COBOL benchmarks modules optimized by IBM Automatic Binary Optimizer for z/OS were all compiled by Enterprise COBOL 4.2. All benchmarks compiled with IBM Enterprise COBOL for z/OS 4.2 use the options OPT(STD), LIB. Performance results for customer applications will vary, depending on the source code, the compiler options specified, and other factors.
    2. The performance improvements are based on the geometric mean of IBM internal measurements on IBM z16 running a z/OS 2.4 LPAR with 1 CP and 80GB Central Storage. All benchmarks optimized with IBM Automatic Binary Optimizer for z/OS 2.2 use the new ARCH(14) option and default settings for all other options. The input COBOL benchmarks modules optimized by IBM Automatic Binary Optimizer for z/OS were all compiled by Enterprise COBOL 5.2 using OPT(2) and ARCH(11), the recommended compiler options for best performance on IBM z16. Performance results for customer applications will vary, depending on the source code, the compiler options specified, and other factors.
    3. The performance improvements are based on the geometric mean of IBM internal measurements on IBM z16 running a z/OS 2.4 LPAR with 1 CP and 80GB Central Storage. All benchmarks optimized with IBM Automatic Binary Optimizer for z/OS 2.2 use the new ARCH(14) option and default settings for all other options. The input COBOL benchmarks modules optimized by IBM Automatic Binary Optimizer for z/OS were all compiled by Enterprise COBOL 6.1 using OPT(2) and ARCH(11), the recommended compiler options for best performance on IBM z16. Performance results for customer applications will vary, depending on the source code, the compiler options specified, and other factors.

  2. What are the characteristics of applications that will benefit the most from ABO optimization?

    Applications, where a significant portion of the CPU time is spent in the COBOL code, or select LE routines, can benefit the most from ABO optimization. Applications that spend most of their time in CICS® (SQL), Db2®, or IMS subsystems, or performing I/O will benefit less.
    Learn more

  3. Can I see gains in my batch and online applications?

    You can see CPU reductions in both batch and online applications. In general, batch applications tend to see larger improvements since they often spend more time in the COBOL code as opposed to other subsystems like CICS (SQL), Db2, and IMS.

Use cases

  1. Can ABO help if the COBOL source code is no longer available?

    Yes. ABO does not require source code or compiler migration. Use ABO to optimize your compiled programs that are not in your recompile plan or if the program source code is not available.
    Learn more

  2. What are the use cases of using ABO?

    ABO is designed to complement Enterprise COBOL. Most clients only compile code that is new or updated, which usually accounts for about 20% of the application code base. The remaining 80% of the application code base, is almost never recompiled. As a result, the most critical applications are not able to fully take advantage of hardware advancements that are designed to improve the performance of the COBOL workload. ABO can be used to improve the application performance without recompilation of the 80% of the application code base. To help decide which product to use, see Table 1.
    Table 1. Comparing ABO and Enterprise COBOL 6 compiler use cases
    Use case Automatic Binary Optimizer Enterprise COBOL 6 ABO + Enterprise COBOL
    Improve performance and reduce CPU usage:
    • source available, and
    • recompilation and test in plan

    In this case, you can use ABO to optimize modules directly

    In this case, you can use Enterprise COBOL 6, but migration, recompilation, and options tuning are required

    Improve performance and reduce CPU usage:
    • source not available, or
    • no recompilation plan

    In this case, you can use ABO to optimize modules directly
     

    Implement new features and fix application defects  

    In this case, modify your source, recompile with Enterprise COBOL 6 and test

    Improve performance of your COBOL 4 and earlier programs that interoperate with OS/VS COBOL

    Your ABO optimized COBOL 4 and earlier programs will interoperate with OS/VS COBOL
    The OS/VS programs must be migrated to Enterprise COBOL 6 to interoperate with new compiled code

    Testing requirements Significantly less as no risk due to invalid data/code and no source changes. Optimize modules directly. Detecting problems (e.g. invalid data) requires a 2-step compile/test approach. Fixes require source changes.  

Interoperability

  1. Can ABO handle calls to other programming languages?

    Yes. ABO is 100% interoperable when calling or being called by other compiled levels of COBOL or other languages.

  2. Can ABO handle all OPTIMIZE settings that are used by Enterprise COBOL to generate the original load module?

    ABO can effectively optimize modules regardless of the original COBOL compiler OPTIMIZE settings.