What is the difference between Enterprise COBOL and ABO?
Enterprise COBOL is a COBOL compiler that takes COBOL source files as input and produces COBOL binaries as output. ABO is a COBOL binary optimizer that takes COBOL binary files as input and produces optimized and faster COBOL binary files as output.
Is ABO just the optimization phase of the compiler?
The implementation of ABO is not a copy of an optimizing compiler. A compiler optimizes high-level languages, but ABO optimizes the low-level binary. Different techniques and optimizations are used.
Can Enterprise COBOL and ABO be used together?
Yes. We recommend that you use Enterprise COBOL and ABO together since they are designed to complement each other. Use the latest version of Enterprise COBOL for new development, modernization, and maintenance. Use ABO to improve the performance of the modules that do not have a recompilation plan.
How can ABO help me with COBOL migration?
Migration from COBOL V4.2 or earlier to COBOL V6 can be challenging and time consuming. Accelerate your COBOL migration by using the latest version of COBOL for new development, modernization, and maintenance. Use ABO to improve the performance of the modules that do not have a recompilation plan.
Can ABO help me if I lost my COBOL source code?
Yes. ABO does not require source code or source code migration. Use ABO to optimize your compiled programs that are not in your recompile plan or if the program source code is not available.
What is the difference in CPU savings between modules optimized by ABO and modules compiled with the latest Enterprise COBOL compiler?
ABO has achieved on par performance with Enterprise COBOL. Compared to the same applications compiled with Enterprise COBOL V4.2 or earlier, computation-intensive applications compiled by Enterprise COBOL V6.3 reduces CPU usage by an average of 58%; binaries optimized by ABO V2.1 reduces CPU usage by an average of 57%.
Do ABO modules suffer from Enterprise COBOL V6 migration pitfalls like invalid data, uninitialized variables, and overpopulation that can happen after being recompiled?
No. ABO optimizes directly from the COBOL binary. so it replicates identical program behavior even in the presence of invalid data, overpopulated data items, parameter size mismatches, and similar conditions.
What are the trial options for this product?
ABO is available as a 90-day cloud trial or on-premises trial. The cloud trial does not require any installation, while the on-premises trial allows you to install ABO at your site.
How can I find out what is new with ABO?
You can find what's new in an ABO release and continuous delivery (CD) PTFs at the following link.
What are the Enterprise COBOL compiler versions eligible for ABO optimization?
ABO can optimize programs compiled from VS COBOL II 1.3 up to and including Enterprise COBOL V4. You can find the full list of the eligible Enterprise COBOL compiler versions in the following topic.
What are the minimum hardware requirements for running ABO?
ABO can run on any system supported by the z/OS® level. For a complete list of IBM Z® servers that support z/OS V2.2 and later, see the link below.
Can we limit the use of ABO to certain modules?
You can decide the number of modules or CSECTs within the modules selected for optimization by ABO. ABO can optimize all modules or a single module in a data set, and ABO provides options to allow you to limit processing to one or more members of a data set or one or more CSECTs within the module.
Do all modules have to go through ABO to see benefits?
To get the most benefit from ABO, optimize the programs that contribute to the bulk of the CPU time in an application. You do not need to optimize all modules to see benefits.
What are the characteristics of the 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 some select LE routines, can benefit the most from ABO optimization. Applications that spend most of their time in CICS®, Db2®, IMS, or performing I/O will benefit less.
How do we determine which modules to optimize to obtain the most performance gains and cost reductions?
By following a few simple steps outlined in our video and whitepaper, you can effectively optimize your COBOL applications by selecting the top CPU-contributing modules to optimize with ABO.
What performance profiling tools are available to me?
Performance profiling tools, such as IBM® APA, can provide the information on the modules that contribute most to the CPU time. ABO ships with the Run Time Instrumentation (RTI) Profiler that can be used in place of a full function profiler if one isn't available.
How do we measure the gains?
You can do two sets of performance runs of the application, one using the original modules and one using the ABO-optimized modules. Capture the CPU time for both runs (e.g. from the JES2 job log from each run) and then compare the CPU times between the runs to see a reduction in CPU time.
How much will ABO be able to improve the performance of my applications?
Performance improvements from ABO depends on a few factors. The first is the amount of time spent in the COBOL code and select LE routines, the second is the amount of computationally intensive COBOL code, and the third is the ABO ARCH level setting and mainframe level where the application runs.
Can I see gains in my batch and online applications?
You can see CPU reductions in both batch and online applications. However, in general, batch applications tend to see larger improvements since they often have more time spent in the COBOL code as opposed to other subsystems like CICS and IMS.
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 ADFz tools and some other vendor tools fully support ABO-optimized modules.
Is regression testing the best way to test ABO?
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.
Will an ABO-optimized program have information similar to compiled programs, such as the compiler version and timestamp?
The original timestamp and compiler version information are retained in the ABO-optimized module. In addition, ABO adds its own timestamp and translator version information.
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.
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.
Are the ABO-load modules stored in a different kind of PDS?
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.
How does ABO handle calls to other language versions?
ABO is 100% interoperable when calling or being called by other compiled levels of COBOL or other languages.
How does ABO handle original modules compiled with the NOOPT compiler option?
ABO can effectively optimize modules regardless of the original compiler OPTIMIZE setting.
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.
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.
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.