Re: Re: CRC - Mailing list pgsql-hackers

From Bruce Guenter
Subject Re: Re: CRC
Date
Msg-id 20001208234626.O9706@em.ca
Whole thread Raw
In response to Re: Re: CRC  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Re: CRC  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Fri, Dec 08, 2000 at 09:28:38PM -0500, Tom Lane wrote:
> Bruce Guenter <bruceg@em.ca> writes:
> >> I agree, don't send it to the whole list.  But I'd like a copy.
> > Here you go.
> As near as I could tell, the test as you have it (one CRC computation per
> fread) is purely I/O bound.

Nope.  They got 99-100% CPU time with the original version.

> I changed the main loop to this:
> [...hash each block repeatedly...]

Good idea.  Might have been even better to just read the block once and
hash it even more times.

>   On an
> otherwise idle HP 9000 C180 machine, I get the following numbers on a
> 1MB input file:
>
> time benchcrc <random32
> real       35.3 > user       35.0 > sys         0.0
>
> time benchmd5 <random32
> real       37.6 > user       37.3 > sys         0.0
>
> This is a lot closer than I'd have expected, but it sure ain't
> "MD5 40% faster" as you reported.  I wonder why the difference
> in results between your platform and mine?

The difference is likely because PA-RISC (like most other RISC
architectures) lack a "roll" opcode that is very prevalent in the MD5
algorithm.  Intel CPUs have it.  With a new version modified to repeat
the inner loop 100,000 times, I got the following:

time benchcrc <random
21.35user 0.01system 0:21.39elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (79major+11minor)pagefaults 0swaps
time benchmd5 <random
12.79user 0.01system 0:12.79elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (80major+11minor)pagefaults 0swaps
time benchcrc <random
21.32user 0.06system 0:21.52elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (79major+11minor)pagefaults 0swaps
time benchmd5 <random
12.79user 0.01system 0:12.80elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (80major+11minor)pagefaults 0swaps
--
Bruce Guenter <bruceg@em.ca>                       http://em.ca/~bruceg/

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Using Threads?
Next
From: Tom Lane
Date:
Subject: Re: Using Threads?