NUMPROC

Default
NUMPROC(NOPFD)
Recommended
When your numeric data exactly conforms to the IBM® system standards as detailed in NUMPROC in the Enterprise COBOL for z/OS® Programming Guide, use NUMPROC(PFD) to improve the performance of your application.
Note: Changing the NUMPROC option can lead to different behaviour if you have invalid data. Make sure that you thoroughly test before using NUMPROC(PFD) to avoid unpredictable results. Use the NUMCHECK(ZON,PAC) option to have the compiler generate implicit numeric class tests to validate your numeric data. This can help you decide whether you can use NUMPROC(PFD).

For details about the NUMCHECK option, see NUMCHECK in the Enterprise COBOL for z/OS Programming Guide.

Reasoning

NUMPROC(PFD) improves performance as the compiler no longer has to generate code to correct input sign configurations. This is particularly important when your application contains unsigned internal decimal and zoned decimal data, as this type of data requires correction before use in any arithmetic or compare statements, in addition to also correcting after certain arithmetic, move and compare statements.

A benchmark that contains many types of arithmetic improves by 11% when using NUMPROC(PFD) compared to NUMPROC(NOPFD)

Related references
NUMPROC (Enterprise COBOL for z/OS Programming Guide)