Peter,

The answer is: it may not matter. Some time ago I was asked to do
research to see if the installation I worked for could justify a COBOL
optimizer (this was a while back, but I believe same issues are true
today). I gathered SMF records and sorted them down by total CPU
consumed by PGM=program name in our installation for a month. The
results were very interesting, but I would be also interested to know if
others have done this and what they found out.

What I found out was the following:

- About 30% of the CPU was consumed by SORT
- About 10% of the CPU was consumed by IEBGENER
- ...
- About 2% of the CPU was consumed by application COBOL programs.

The conclusion I drew was that even if you eliminated all of the CPU
used by application COBOL programs, the most one would save is 2%. We
declined to purchase the product.

It has been my personal experience that a similar, but perhaps different
CPU profile exists in most shops (that is, a list of declining amounts
of CPU time). The products that use large amounts of CPU time are well
known, and a great deal of effort at IBM and ISVs has been expended to
work on this issue. To verify this, just do the same thing on your
particular program for all of the CPU it uses in a month. The small
amount may surprise you.

Additionally, a portion of the CPU time charged to your program may be
in doing services on your behalf, such as QSAM, various SVCs, etc., over
which you have some, but often times, little control.

Tom Harper
IMS Utilities Development Team
Neon Enterprise Software
Sugar Land, TX    

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of Farley, Peter x23353
Sent: Tuesday, February 05, 2008 3:39 PM
To: [email protected]
Subject: Re: CPU time differences for the same job

This most interesting discussion of the variability of CPU consumed by
the same unit of work requires me to ask the following question:

How is the normal application programmer who is tasked with reducing the
CPU consumed by an application process (let's say a complex batch
process for the sake of argument) supposed to judge whether he has
improved the process or not?

Granted, there are frequently obvious performance design flaws that will
significantly impact CPU consumption (sequential searches on large
in-storage tables vs. binary searches for one simple example), but once
the obvious performance improvements have been made, how does a normal
programmer accurately measure change in the performance of a process
when CPU variability may completely mask any effect that source-code
changes may or may not have had?

More to the point, how does a programmer show management what the
improvement will be from a given set of changes when the results may be
completely unrepeatable, depending on system load?  Application
programmers do not (usually) have the luxury of dedicated machines on
which to run performance tests.

Add to that the fact that test environments for developers infrequently
have the same priority as production environments, and so are subject to
even more delays and therefore cache-misses, along with all the other
performance-killers mentioned in this thread.  How can a programmer
accurately predict for management approval what the production
performance improvement will be when the test environment is so much
more poorly served than production?  When even successive runs on the
same test machine at the same time of day produce large and
unexplainable differences in performance?

Please correct me if I am wrong, but much of this discussion leads me to
believe that we are saying that there is essentially no reasonable way
to predict or model performance for a given application process.  That
just seems so *wrong* to me.  Measuring and accurately reporting
application performance improvement should NOT require an advanced
degree in hardware engineering and being able to design around the
impact of missed cache-lines.

I am hoping I am wrong about my interpretation of this information.
Counter-examples and/or corrections to my understanding of the subject
gratefully accepted.

Peter

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to