hanc...@bbs.cpcn.com writes:
> A lot of mainframe programmers weren't aware of some ways to improve
> batch performance. While not significant when processing relatively
> small files, large and complex processes would benefit. Heck, even I
> could suggest inprovements. These included proper use of COMP-3,
> COMP, and INDEXED in COBOL programs, use of certain coding techniques
> as recommended in the COBOL Programmers Guide*; use of a compiled
> COBOL program instead of a 4th generation program like Easytrieve,
> proper block size and record length, use of SYNCSORT to select off
> desired records before processing, for very records, reformat to a
> smaller length early in the process when practical. In certain
> situations an assembler subroutine was faster for certain binary
> efforts. For data base access, working with knowledgeable DBAs about
> the best way to access and update records is helpful. There are also
> systems programming issues, such as avoiding channel and head
> contention in files and ensuring adequate real core for buffers and
> programs.
re:
the pretty much did all that stuff ... also frequently ran instruction
address sampling looking for code "hot-spots" ... which would get
extensive review for additional code rewrite/optimization.
not long before I got involved, they had also contracted with a
consultant that had a sophisticated system model ... that had been
fairly succesful identifying performance issues at a number of other
large mainframe shops. I've told this story periodically before, the
system modeling had been acquired from IBM in the early 90s ...
implemented in APL ... and run thru an APL to C-language converter.
This was a many times descendent of the "performance predictor" that had
originated at the science center and made available on HONE system (in
mid-70s) for marketing people to use for "what-if" scenarios ... input
detailed customer configuration and workload and ask what-if effects if
configuration and/or workload changed (i.e. sell customer an extra
megabyte or two of memory, add more disk arms, etc). misc. past posts
mentioning hone
http://www.garlic.com/~lynn/subtopic.html#hone
In the 60s and 70s, science center had done lots of system monitoring
and performance work ... instruction hot-spot monitoring (both detailed
traces and sampling), workload profiling, detailed system simualtion,
analytic (APL) system modeling ... some of the stuff eventually evolves
into capacity planning. There was also a lot of work with multiple
regression analysis using huge amounts of system monitor data (decade of
science center monitored data ... plus a few yrs from large number of
different internal systems). misc. past posts mentioning science center
http://www.garlic.com/~lynn/subtopic.html#545tech
example of instrumenting vm370 kernel for instruction sequence
hot-spot ... but was also augmented with instruction address
sampling
http://www.garlic.com/~lynn/94.html#21 370 ECPS VM microcode assist
i leveraged a variation of the "performance predictor" doing my
resource manager benchmarking ... misc. past refs
http://www.garlic.com/~lynn/submain.html#benchmark
in any case, i suggested i might be able to find something at the
macro-level with multiple regression analysis ... that they were not
seeing at the micro-level with all the coding techniques, hot-spot
monitoring and system modeling.
what i found was a large application feature/function that multiple
regression analysis showed was accounting for 21% of total application
useage ... which nobody could explain or account for. The function was
complex operation which invoked a large number of different application
features ... each one of the individual application features had been
extensively optimized. The eventual explanation was that the function
was repeatedly executed three times for each operation ... when it
should have only been invoked once. Elimination of the extra,
unnecessary two iterations represented 14% savings.
misc. past posts mentioning multiple regression analysis
http://www.garlic.com/~lynn/2002l.html#62 Itanium2 performance data from SGI
http://www.garlic.com/~lynn/2004g.html#9 Need to understand difference between EBCDIC and EDCDIC
http://www.garlic.com/~lynn/2004k.html#31 capacity planning: art, science or magic?
http://www.garlic.com/~lynn/2005d.html#6 [Lit.] Buffer overruns
http://www.garlic.com/~lynn/2005k.html#17 More on garbage collection
http://www.garlic.com/~lynn/2005n.html#18 Code density and performance?
http://www.garlic.com/~lynn/2006f.html#22 A very basic question
http://www.garlic.com/~lynn/2006g.html#4 The Pankian Metaphor
http://www.garlic.com/~lynn/2006o.html#23 Strobe equivalents
http://www.garlic.com/~lynn/2006s.html#24 Curiousity: CPU % for COBOL program
http://www.garlic.com/~lynn/2006t.html#28 Why these original FORTRAN quirks?
http://www.garlic.com/~lynn/2006x.html#27 The Future of CPUs: What's After Multi-Core?
http://www.garlic.com/~lynn/2007g.html#71 PAAppViewer3 (AppViewer3)?
http://www.garlic.com/~lynn/2007u.html#21 Distributed Computing
http://www.garlic.com/~lynn/2009r.html#17 How to reduce the overall monthly cost on a System z environment?
http://www.garlic.com/~lynn/2010j.html#81 Percentage of code executed that is user written was Re: Delete all members of a PDS that is allocated
http://www.garlic.com/~lynn/2011p.html#60 Spontaneous conduction