[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PCL 70 times slower than Ernie with 1000 cars.
- To: burdorf%taos@rand.org
- Subject: Re: PCL 70 times slower than Ernie with 1000 cars.
- From: harrisr@turing.cs.rpi.edu (Richard Harris)
- Date: Tue, 15 Nov 88 17:05:20 EST
- Cc: CommonLoops.pa@Xerox.COM
- Redistributed: CommonLoops.pa
Some notes on the carwash program.
1) random
The carwash generates its data using a series of calls to
the function RANDOM. Thus comparisons of this program in
different CL implementations will (probably) be using
different data. Since the data generation program,
GENERATE-CARS, uses (EVAL `(DEFVAR ...)) and RANDOM,
some care must be taken to get exactly reproducable data
even in one CL implementation.
2) fraction of the time spent in pcl
The data that I have gathered and summarized below indicates that
it is impossible to speed up the carwash program by more than 25%
by improving PCL. I think that the version of this program that
is written in ERNIE really isn't as similar as you say it is. Try
changing the carwash program so that it runs without alteration of
the source code in either PCL or ERNIE (using macros and #+), and
reporting timings you get from that. (If you do this, I would like
to get a copy of your code).
All the times here were measured on a SUN4/280 using PCL 8/28/88
with some patches and akcl-1-79 with some patches.
The estimated times were computed using the average times reported below.
+++++ 200 cars, instrumented estimated run times
conses 557399
(by explicit calls to cons, list, and append in the carwash program)
CachingDF method calls 29637 1.0 secs
cache misses 340 0.2 secs
ReaderDF method calls 191502 6.1 secs
cache misses 14 0.0 secs
WriterDF method calls 50593 1.6 secs
cache misses 11 0.0 secs
Reads 0
Get-Slot-Value cache misses 0
Writes 0
Set-Slot-Value cache misses 0
(slot-value is called in only one place in this program;
I believe that slot-value performance does not matter here)
real time 91.9 secs
run time 83.5 secs
+++++ 200 cars, uninstrumented estimated run time of PCL operations
real time 48.3 secs
run time 37.0 secs 9.0 secs
+++++ 100000 calls to a CachingDF
(2 args, no rest arg, disc. on first arg only)
real time 3.8 secs
run time 3.4 secs
+++++ 10000 calls to pcl::caching-dcode-miss
(2 args, no rest arg, disc. on first arg only)
real time 6.6 secs
run time 5.9 secs
+++++ 100000 calls to a ReaderDF
real time 3.6 secs
run time 3.2 secs
+++++ 100000 calls to a WriterDF
real time 3.3 secs
run time 3.2 secs
Rick Harris