IBM Support

In-depth FAQs for IBM Automatic Binary Optimizer for z/OS

General Page

Do you have IBM® Automatic Binary Optimizer for z/OS® (ABO) usage or maintenance-related questions?
A list of the most frequently asked questions and their answers is available here. For questions about how to understand, try, and buy ABO, visit Sales FAQs for ABO.
1. What is the recommended way to evaluate whether ABO is right for me?
The ABO Assistant is included with ABO to identify the COBOL applications that will benefit the most from ABO. The ABO Assistant lets you drill down from high level SMF data all the way to get concrete performance evaluation results from ABO.

 
2. How do I know if ABO is installed correctly?  
ABO includes an Installation Verification Program (IVP) to verify that ABO, and any prerequisite LE or z/OS PTFs, have been installed correctly.
Learn more
 
3. Can you specify which architecture level that you want ABO to optimize for?
Yes. Set the ABO ARCH option to the lowest level of the IBM Z system where the optimized modules are to be run. For example, in a mixed environment with z13 and z14 systems, set the ABO ARCH level to ARCH=11 (z13). 
4. Can ABO identify modules that it cannot optimize and show their origins?
A: Yes. ABO can identify the original compiler that created each CSECT within the modules that it optimizes. ABO skips CSECTs that are not eligible for optimization. The ABO SCAN=Y option generates a log file that lists the origin information for each CSECT in the modules. 
5. Does ABO support both PDS and PDSE?
Yes. You allocate the target data set for ABO to use and ABO populates it with the optimized modules. If the original data set is PDS, the target data set can be a PDS or PDSE. If the original data set is a PDSE, then the target data set must be a PDSE. An error message is produced if this isn't the case.
Learn more
6. Will the size of the ABO-optimized modules change due to optimization?
The size of an optimized module is typically larger than the original module due to the optimizations ABO does to improve performance.
Learn more
7. Do ABO-optimized modules still contain the original compilation time stamp and version information?
Yes. The original time stamp and compiler version information are retained in the optimized module. In addition, ABO adds its own time stamp and version information.
 
8. Can z/OS tools like AMBLIST and Binder show ABO-optimized CSECTs in modules?
Yes. ABO adds its own time stamp and version information into CSECTs that it optimizes. This information is for the usage by other z/OS tools. 
9. What level of testing does ABO require?
We recommend system verification and performance testing of applications that contain ABO-optimized modules. ABO optimization provides a strong compatibility guarantee to the original application and requires much less testing than migrating to the latest Enterprise COBOL compiler.

10. Why is less testing required to verify ABO-optimized modules compared to recompiling from source?
ABO maintains the exact program logic of the original compiled program because of the following reasons:
  • ABO processes binary code rather than source code so the exact behavior of the original program is known, even when processing invalid data.
  • ABO does not change the layout of any control blocks or data areas, so interoperability with other programs, such as HLASM programs, is not impacted.
  • ABO processing includes running a number of verification phases to ensure compatibility. In the rare case of ABO encountering any CSECT that ABO cannot handle,  ABO issues a warning level message, stops the optimization of that CSECT, and skips to the next CSECT or module that is to be optimized. Any CSECTs that are not optimized are copied over unchanged to the target module.
  • No compiler options or source code is changed as in a recompilation scenario.
Due to this much narrower scope of changes compared with a source recompilation using the COBOL compiler, you do not have to perform full functional verification testing of the ABO-optimized modules.
Learn more

11. How can I debug modules optimized by ABO? 
ABO creates a listing transform to provide information for downstream tools like debuggers and abend tools. IBM APA, IBM Debug Tool, and some other vendor tools fully support ABO-optimized modules. Learn how to debug ABO-optimized modules with IBM Debug for z/OS through the following video.
12. If there is an ABEND in an ABO-optimized module, how would the dump be matched back to the original COBOL source code? 
ABO generates a listing transform for each CSECT it optimizes. The listing transform shows how the instructions in the input binary map to the optimized instructions. The listing transform can be used with the original COBOL compiler listing to map back to the COBOL source code for debugging purposes.
13. Can independent software vendor (ISV) or 3rd party z/OS development tools work with ABO-optimized modules?
Yes. IBM has been working closely with the z/OS ISV community to provide them the information on how to enable their tools to support ABO-optimized modules. Some ISVs claim full support and others claim toleration of ABO-optimized modules. IBM recommends you consult with your ISV to verify the level of support provided. IBM z/OS development tools such as Application Performance Analyzer (APA), Fault Analyzer (FA), and Debug for z/OS fully support ABO-optimized modules.
14. Why do I get an 0C1 abend code when I run my ABO-optimized module?
An 0C1 abend can occur due to the following reasons:
  • The ARCH level that was specified is greater than the IBM Z® system where the modules are being run. For example, specifying ARCH=12 (for z14) but running the ABO optimized modules on a z13® or an earlier IBM Z system.
  • The prerequisite LE or z/OS PTFs were not installed. The Installation Verification Program (IVP) included with ABO can verify if all these PTFs have been correctly installed.
15. Are there any runtime libraries required to execute the ABO-optimized code?
A: Depending on the z/OS version, there might be one or more LE PTFs that need to be installed on the system where the ABO-optimized modules are to be run.
16. Is ABO required to execute ABO-optimized modules? 
No. You don't need to install ABO on systems where you are executing the ABO-optimized modules. However, you do need to ensure the ABO runtime library is available. Depending on the z/OS version, there might be one or more LE PTFs that need to be installed on the system where you execute the ABO-optimized modules.
17. How do I measure performance improvements of my COBOL applications after using ABO?
To measure performance improvements from ABO, run the COBOL application twice. Use the original modules in the first run and use the ABO-optimized modules in the second run. The CPU time from each run can be found in the JES2 job log. Compare the CPU time between the runs to see the reduction in CPU time. Note that elapsed time is highly volatile run to run because it is affected by system load and variability in I/O processing. Elapsed time is not a reliable metric for determining performance improvements from ABO.
The ABO assistant is also available to completely automate an ABO performance measurement for an application. The ABO Assistant automates all the individual steps that are required to efficiently optimize your COBOL batch applications using ABO and to clearly report on the CPU time savings from using ABO.

18. What performance profiling tools are available to me?
There are stand-alone performance measurement and reporting tools that can be used, such as IBM Application Performance Analyzer, to provide system level profiling as well as details on the modules and compiled programs that contribute most to the CPU time.
ABO includes the Run Time Instrumentation (RTI) Profiler to collect and report on the execution time CPU performance characteristics of your batch z/OS applications.
Learn more

19. I've identified a COBOL CPU-intensive application using SMF data and optimized the main program identified in the SMF data.  Why am I not seeing good performance gains? 
The main COBOL program of an application often calls many other programs so a significant amount of the CPU time might be spent in these called programs. Therefore, it is critical to also optimize the called COBOL programs to obtain the best performance improvements.
For batch COBOL applications, you can use the ABO Assistant to identify and optimize all the compiled COBOL programs that are used by the application and produce a report that shows the actual CPU time reduction from using ABO.  
Learn more
 

20. What is the best way to deploy ABO-optimized modules?
It is recommended to deploy ABO-optimized modules iteratively in batches to achieve your performance goals more quickly.
 

21. If you have an ABO-optimized module that interacts with Db2®, do you have to rebind the optimized module before deploying?
No. Rebinding of the ABO-optimized module is not needed.

22. How often are updates available for ABO?
ABO is released on a continuous delivery cycle. See how frequently we are releasing updates at the following link.
Learn more

23. What information do I need to give to IBM if I want to report an ABO problem?
Prepare information such as ABO version number using the <> command. Then follow the instructions at the following link before opening your support case with IBM.
Learn more

24. How can I request an enhancement to ABO?
Use Request for Enhancement (RFE) Community to collaborate directly with the IBM product development teams and other users.
Learn more

[{"Line of Business":{"code":"LOB35","label":"Mainframe SW"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSERQD","label":"IBM Automatic Binary Optimizer for z\/OS"},"ARM Category":[{"code":"a8m0z00000007saAAA","label":"Automatic Binary for z\/OS"}],"Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"All Version(s)"}]

Document Information

Modified date:
09 March 2023

UID

ibm16438453