- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: Cobol Compiler generated Code is very slow on ...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-06-2008 06:03 PM
тАО03-06-2008 06:03 PM
Re: Cobol Compiler generated Code is very slow on IA64
see attachment
there are no floats so I didn't use that qualifier and my compiler doesn't have /ARITH
I am surprised that your axp opt didn't improve things much - were your elapsed and cpu times nearly the same?
Phil
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-06-2008 08:08 PM
тАО03-06-2008 08:08 PM
Re: Cobol Compiler generated Code is very slow on IA64
Having looked at your code it looks like something found and reported to hp late last year. It is still being worked on.
The issue is to do with "ELF object format used on Integrity does not allow for "sparse" initialization".
Looking at your code it will probably be the statment
01 I02-IND-MAX PIC 9(08) VALUE 5000000.
that is causing your issue. Reduce the value to prove it to yourself.
You'll probably notice a reduction on the object size too.
I'm not a COBOL expert but the advice from hp was to change the source code to alleviate this effect by moving the initialization of (in your case) I02-IND-MAX from the WSS to somewhere in the code at run-time.
"Mr Cobol" is still looking into making improvements but I've heard nothing recently so this is a timely reminder for me to chase hp up!
Hope this helps,
Malcolm
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-07-2008 04:57 AM
тАО03-07-2008 04:57 AM
Re: Cobol Compiler generated Code is very slow on IA64
Thank you very much for your time - reading and answering my post.
The Tip with the declaration using COMP as datatype really did the job! After applying the change to the "REAL" program ist went thru within normal expected runtime. Reduced the consumed CPU time from 25Min to 5Min.
My job is now to find and change all bad declared loop variables within the 3000 sources and to son deep testing. Im sure we will find also other things, but this will be another story.
I close this topic and assign some points to you...
Again many thanks!
Beat
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-07-2008 05:01 AM
тАО03-07-2008 05:01 AM
Re: Cobol Compiler generated Code is very slow on IA64
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-07-2008 06:59 AM
тАО03-07-2008 06:59 AM
Re: Cobol Compiler generated Code is very slow on IA64
01 I02-IND-MAX PIC 9(08) VALUE 5000000.
is only initializing a small packed decimal string to 5000000.
Your situation is having a LARGE data structure with a few non-zero fields scattered around. Something that can be represented in Alpha OBJ format easily but ELF format forces us to write the whole section into the OBJ file.
For those of you still reading, our compilers (except for C++) are inefficient in writing OBJ files. Since ELF files are RMS "undefined" files, the code in GEM went down a path that caused it to be paranoid. It current writes OBJ files in ONE block increments with no multi-buffering, etc. (ie, it uses SYS$WRITE). There are places where the compiler must to back and rewrite various blocks (like the ELF header) so it isn't just a sequential stream file.
For regular sized OBJs, the extra I/Os haven't been noticed before (we didn't even realize it until Malcolm submitted the bug). However for LARGE OBJs (like those with large data structures with a few non-zero fields scattered around), the overhead of the poor choice in RMS calls is very noticable.
On the side, I've been rewriting that portion of GEM to use a larger buffer and more buffers. As I mentioned above, it is complicated by the fact that sometimes the compiler wants to backup and rewrite bytes in the ELF file (not simply rewrite a BLOCK, but the interface in GEM allows rewriting of arbitrary bytes in the file). My rewrite needs to handle that case.
My status? I'm about 2/3rds finished with the rewrite, but other pressing items have prevented me from finishing. I do get ping'd at least once a week from the ambassador in Sydney as well as my local support chain.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-07-2008 07:11 PM
тАО03-07-2008 07:11 PM
Re: Cobol Compiler generated Code is very slow on IA64
[For artifical programs like this that seem to rely on lots of packed decimal operations, I'll point out that the routines in LIBOTS2 on Alpha (which perform such operations) is hand-crafted Alpha Macro-64 assembly code. On I64, we converted the algorithms into C (which hurts their performance).]
Delightful!
Just curious whether this decision is from John Reagan Zeit or circa Don Braffit?
Hi Burkart,
[My job is now to find and change all bad declared loop variables within the 3000 sources and to son deep testing. Im sure we will find also other things, but this will be another story.]
Yep, compile-and-go nothin' beats it. Any on-disk packed-decimal data? Good luck with the regression testing!
Still who'd be using comp-3 with COBOL anyway? (Or COBOL for that matter)
Have you thought of taking the opportunity to convert to Java or C++? You'd get a much bigger bang for your support buck from HP/VMS!
Cheers Richard Maher
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-08-2008 02:02 AM
тАО03-08-2008 02:02 AM
Re: Cobol Compiler generated Code is very slow on IA64
Why would the compiler generate code that accesses misaligned data?
My COBOII compiler on MPE would simply do byte or short loads. (Especially since the OS would just abort on an alignment fault. :-)
Perhaps the VMS compiler is spoiled. :-)
>Malcolm: The issue is to do with "ELF object format used on Integrity does not allow for "sparse" initialization".
Yes, we have the same problem with ELF on HP-UX. Our PA-RISC SOM format allows sparse inits in object files but not ELF.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-08-2008 02:35 AM
тАО03-08-2008 02:35 AM
Re: Cobol Compiler generated Code is very slow on IA64
When I made my second comment about alignment faults, I was concerned that something in the call path used by the program was generating faults.
There are two ways that you can get alignment faults on programs that appear to be innocuous: 1) a "lie" about the alignment of a structure that is within a structure; or
2) somewhere in the path of calls within calls underlying the program, there is an alignment issue.
While I do not do it in every situation, it is often useful to EXCLUDE such a problem at the beginning, rather than to march onward for an extended time. Exclusion of a potential diagnosis allows one to remove many possibilities from consideration at the outset.
I found this a useful intellectual technique for which I must give credit to non-computer diagnosis fields, such as traditional engineering and medicine.
- Bob Gezelter, http://www.rlgsc.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-10-2008 07:45 AM
тАО03-10-2008 07:45 AM
Re: Cobol Compiler generated Code is very slow on IA64
Besides the siutations that Bob mentioned where a non-COBOL caller might have 'lied' by passing something that wasn't aligned properly, I'll mention that COBOL V2.8 and earlier contains a bug where it would generate code that assumed alignment eventhough it could clearly tell from the source that it was not aligned. That bug has been corrected for V2.9.
For pure COBOL applications, I don't expect any alignment faults if compiled with the V2.9 compiler.
- « Previous
-
- 1
- 2
- Next »