From: mathog@seqaxp.bio.caltech.edu Sent: Thursday, January 11, 2001 12:09 PM To: Info-VAX@Mvb.Saic.Com Subject: Re: Today's Nugget of Worthless Information In article <93j25d$uo8$1@nnrp1.deja.com>, fooguy writes: >Two DS20s, both alike in kind in fair Washington,DC: >500mhz 21264 CPU, 1G Ram > >One is running OpenVMS 7.2-1, the other NetBSD 1.5 > >The RC5 keyrate from the OpenVMS machine is ~532Kkeys/s >The RC5 keyrate from the NetBSD machine is ~1027Kkeys/s > >Now, I would not expect RC5 to perform as well on an Alpha as a PC, >since the client is so heavily optimized for the PC (mhz for mhz, the >Alpha was over twice as fast as a PC in the DES benchmark), but for two >identical machines to have that wide a gap? How much IO does this do? If you use the default settings for open() and fopen() the standard IO rates to disk on VMS are very much smaller than on Linux or any Unix I've tested (which doesn't include netBSD.) Things that will kill you are the RMS /buffer and /block parameter and especially the /extend parameter. (Doing lots of little extends just kills performance because the heads have to jump all over the disk.) If you're running in a pipe then have a look at the system parameter for mailbox size. The default is very small and it makes PIPE'd applications push data through a pinhole. Paul Repacholi sent me what was essentially a one line patch for gzip that sped it up by a factor of 10 for gzip -d and a factor of 4 (roughly) for gzip. I'll post some timings for that later but the key change was: # define OPEN(name, flags, mode) open(name, flags, mode, "ALQ=32", "DEQ=4096",\ "MBF=6", "MBC=128", "FOP=cbt,tef,sqo", "ROP=rah,wbh") Of these, the ROP bits seem to have made the most difference (read ahead, write behind) and the block/buffer settings helped too. If your code uses C open() or fopen() try at least adding the ROP part, you may see a huge difference in throughput. Also, if you're using DEC C, optimize it for HOST with: cc/opt=(tune=host). The default is /OPTIMIZE=(INLINE=AUTOMATIC,LEVEL=4,UNROLL=0,TUNE=GENERIC). and GENERIC can be quite a bit slower than host. Note that UNROLL=0 means the compiler gets to choose, not that it doesn't unroll loops. Regards, David Mathog mathog@seqaxp.bio.caltech.edu Manager, sequence analysis facility, biology division, Caltech