View previous topic :: View next topic
|
Author |
Message |
worldan
New User
Joined: 15 Sep 2009 Posts: 10 Location: chennai
|
|
|
|
Dear All,
Greetings ! I am asked in my shop to reduce the CPU utilization of a program which is a major contributor towards MIPS. I ran a STROBE against the job which is executing the program and created a performance profile report.
I am able to see a sigificant % of CPU utilization was spent towards Extended decimal conversion ( IGZCONVX) and a less siginificant % of CPU towards Decimal conversion ( IGZCONV). The attribution of CPU time section in STROBE lists out the offset locations for Decimal conversion in which i can able to see cobol contructs involve COMP-2 and COMP-3 variables. I am not able to see offset for extended decimal conversion in Strobe report. I searched thru manuals and not able to figure . Can any one please explain in detail what is extended decimal conversion and when and why it is invoked ? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
Quote: |
Can any one please explain in detail what is extended decimal conversion and when and why it is invoked ? |
read the cobol manuals about ARITH(EXTEND) |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Also post the code and definitions of the CPU hogs. If you have enormous numbers, they take more time to process. If you are processing that but don't need to, then you can do something about it. But, we can't guess... |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
I am asked in my shop to reduce the CPU utilization of a program which is a major contributor towards MIPS. |
Actually, no it is not. MIPS, which is a term that IBM itself stopped using many years ago, cannot be related to anything less than an LPAR. If you have a program, it may be using too much CPU time -- but it is not using too many MIPS since the term "MIPS" cannot be applied to a program.
What is "significant CPU" to you -- 5%? 20%? 95%?
As otherwise noted -- do you need numbers with more than 18 digits? If not, changing your PICTURE clauses could make a big difference. If you do, however, then there may be little to nothing you can do to reduce the CPU utilization of the program.
Why is so much data conversion going on? How many input records is your program handling? Is the data conversion primarily for changing data input from a file, doing arithmetic, then changing data to output to a file -- or something else entirely? |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Or just gaily using numeric intrinsic functions? :-) |
|
Back to top |
|
|
worldan
New User
Joined: 15 Sep 2009 Posts: 10 Location: chennai
|
|
|
|
I verified the main as well as sub modules and all are compiled with ARITH(COMPAT).
Here is the #IEP section of strobe
** MOST INTENSIVELY EXECUTED PROCEDURES **
-MODULE SECTION LINE PROCEDURE/FUNCTION STARTING PROCEDURE CPU TIME PERCENT CUMULATIVE PERCENT
NAME NAME NUMBER NAME LOCATION LENGTH SOLO TOTAL SOLO TOTAL
COBLIB IGZCPAC IGZCONVX EXTENDED DECIMAL CONV. 12.61 13.70 12.61 13.70
.PRIVATE PRIVATE AREA 7.70 12.94 20.30 26.64
.COBLIB IGZCPAC IGZCONV DECIMAL CONVERSION 4.15 4.55 39.57 48.20
.PRIVATE .PRIVATX EXTENDED PRIVATE AREA 1.05 1.37 44.18 53.64
In the Attribution by CPU time section of Strobe report, i am able to see the offsets for ONLY IGZCONV. I verified the cobol code and it involve computations between COMP-2 Variables and getting stored into COMP-3. So i believe that the LE routine IGZCONV is called for data conversion from COMP-2 to COMP-3. I don't understand what is extended decimal conversion ? I scanned the modules and the variables defines are COMP-2 and COMP-3. Will COMP-2 itself act as extended floating point? We are using enterprise cobol 4.2 |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Yes, COMP-2 is higher precision than COMP-1 (the field is bigger, can hold more stuff), and will cause more "strain" in conversion.
Unless you actually need COMP-1/COMP-2 it is best to avoid them, for the reasons you have discovered.
If you have to use them, do so such that the conversions are as few as possible. If you can show a relevant section of code, we might have some suggestions. |
|
Back to top |
|
|
worldan
New User
Joined: 15 Sep 2009 Posts: 10 Location: chennai
|
|
|
|
Hi Robert,
The decimal points play a major role in our shop and we need that precision. Lot of computations are involved and hence these variables are declared in COMP-2 and in the final stage, these values are stored in COMP-3 for reporting. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
You mean me?
If you have a wide range of numbers of significant decimal digits, then perhaps you need it. So, describe what you have, please. |
|
Back to top |
|
|
worldan
New User
Joined: 15 Sep 2009 Posts: 10 Location: chennai
|
|
|
|
Hi Bill,
My problem is the STROBE is not listing the offsets for the LE routine IGZCONVX got invoked. I am very much okay with the offset locations listed for IGZCONV in which computations are happening between COMP-2 and COMP-3. I am not able to understand what is the LE module IGZCONVX and when and why it is getting invoked ? |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
IGZ prefixes are not Language Environment modules, they are Cobol modules.
If you generate the pseudo-assembler listing for your program (compile options LIST,NOOFFSET) you will be able to find all the references to IGZCONVX and see exactly where and when it is being used.
Are you looking at the thing because you have a performance problem? |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Have you opened a PMR with IBM? If not, you really should do that since IBM can tell you more about what IGZCONVX is used for and how it is invoked. They probably would even have suggestions for improving performance. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Can you post a sample of the code which gives reference to IGZCONV, please, including data definitions. Also you compile options (you can TF (Text Flow) them onto one line). |
|
Back to top |
|
|
|