IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

LE conversion routine IGZCONVX - Cobol


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
worldan

New User


Joined: 15 Sep 2009
Posts: 10
Location: chennai

PostPosted: Mon Nov 26, 2012 7:37 pm
Reply with quote

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
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Mon Nov 26, 2012 7:51 pm
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon Nov 26, 2012 7:53 pm
Reply with quote

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
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Mon Nov 26, 2012 8:16 pm
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon Nov 26, 2012 8:19 pm
Reply with quote

Or just gaily using numeric intrinsic functions? :-)
Back to top
View user's profile Send private message
worldan

New User


Joined: 15 Sep 2009
Posts: 10
Location: chennai

PostPosted: Tue Nov 27, 2012 1:28 pm
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Nov 27, 2012 1:32 pm
Reply with quote

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
View user's profile Send private message
worldan

New User


Joined: 15 Sep 2009
Posts: 10
Location: chennai

PostPosted: Tue Nov 27, 2012 1:32 pm
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Nov 27, 2012 1:39 pm
Reply with quote

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
View user's profile Send private message
worldan

New User


Joined: 15 Sep 2009
Posts: 10
Location: chennai

PostPosted: Tue Nov 27, 2012 8:51 pm
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Nov 27, 2012 9:12 pm
Reply with quote

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
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Tue Nov 27, 2012 9:33 pm
Reply with quote

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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Nov 28, 2012 2:50 pm
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts COBOL ZOS Web Enablement Toolkit HTTP... COBOL Programming 0
No new posts Calling DFSORT from Cobol, using OUTF... DFSORT/ICETOOL 5
No new posts Generate random number from range of ... COBOL Programming 3
Search our Forums:

Back to Top