Fix #4341: atan of complex bfloat calls rat
[maxima.git] / archive / doc / benchmarks
blob803a3df2764fac74922a76c7e7b05713e5860240
1               Some Comparisons of Algebraic Manipulation
2                         On Different Hardware
3                                    
4                                    
5                             Bill Schelter
6                          University of Texas
7                             Austin, Texas.
9                             June 25, 1987
12 In the following we use Maxima to refer to the Common Lisp port of
13 Macsyma by Bill Schelter, based on the original version of Macsyma at
14 MIT, and distributed by the National Energy Software Center.  Other
15 versions are referred to by the name Macsyma.
17 Times are elapsed (with cpu times in parentheses for machines where
18 this was substantially different, e.g. Suns).  By elapsed time I mean
19 wall clock time.  (Where this differs from cpu time the main culprit
20 was page faults).  All times were the average of several cycles to
21 ensure garbage collection information was included.  The large problem
22 garbage collected a number of times on the small Sun, and so only one
23 computation was performed.  All machines were run with only one user
24 running at normal priority.  (Except for the 3/160, the 11/780, and
25 DEC-20 where there were several other rather idle users).  All
26 machines except the 3/50 had adequate memory to prevent page faults
27 from being a major problem.  The TI explorer is NOT the processor on a
28 chip, but a machine several years old.
31 Machine              Time in Seconds
32             
33   Problem:        Factor((x+y+z)^10)       Factor((x+y+z)^20)
35 Maxima (Common Lisp version by Bill Schelter)
38 TI Explorer(I)       5.3                    28.2
39 Sun3/260             3.08(cpu 3.08)         19.33(cpu 19.5)
40 Symbolics 3640       5.6                    21.3
41 (with IFU unit) 
42 Sun3/160             7.0 (cpu 7.0)          33.3 (cpu 33.0)
43 Sun3/50             27.3 (cpu 9.7)         243.0 (cpu 63.7)
44 PC Limited386(6meg)  9.0 (cpu 9.0)          42.5 
46 Some other versions of Macsyma.  Version details below.
48 Dec20(maclisp)              (cpu 6.5)          problem too big
49 Vax/11/780(franz)      27.0 (cpu 17.1)         did not try
50 Sun(3/160)(franz)      14.1 (cpu 14.1)         forgotten result
52 Notes: The times all are elapsed, and INCLUDE time for garbage
53 collection.  On the lisp machines ONLY ephemeral garbage collection
54 was included.  But generally speaking their ephemeral garbage
55 collectors are fairly effective at picking up such consing.
57 The small Sun suffered greatly from page faults: for example the
58 actual run time was 8.05 for the first one, and with a garbage
59 collection every two or three times costing 5 seconds.  The rest of
60 the time was spent in page faults, particularly costly during the
61 garbage collection.
63 The Sun-3/50 had 4meg of memory and shoe box disk.  We have included
64 an appendix for the 3/50 to show the vagaries of the timings due to
65 poor paging.
67 THE CODE:
69 The Maxima in all cases was a full version including Lisp compiler and
70 the Maxima to Lisp translation facility.  Approximately 120 files were
71 loaded.  On the very small machine reducing the size of the system,
72 would probably prove beneficial.  The Franz and Maclisp versions
73 include fewer files.  For small machines this is probably beneficial.
75 DETAILS CONCERNING SOFTWARE:
77 The Maxima code was the Common Lisp version by Bill Schelter at
78 University of Texas, and is distributed by National Energy Software
79 Foundation at Argonne Illinois.  It is based on the release from MIT
80 to the DOE of the original MACSYMA.  It has been modified by the
81 author to run in Common Lisp.  A number of other enhancements are
82 included, including some for performance.  It is in use at a large
83 number of institutions.
85 KCL (Kyoto Common Lisp the Common Lisp we used on the Suns) is
86 available free of charge by anonymous ftp from University of Texas on
87 rascal.ics.utexas.edu [128.83.144.1] Login as ftp, with no password.
88 See the message kcl.broadcast in the ftp directory for instructions.
89 You must mail in a copy of the form in that message to validate your
90 no-fee license.  Both Maxima and KCL distributions include ALL
91 sources.  A number of optimizations to KCL have been made by Schelter
92 to help with performance in function calling, and also for the type of
93 arithmetic found in the Macsyma Code.  The author has found KCL to be
94 an excellent and reliable lisp.  Its authors are Hagiya and Yuasa of
95 Kyoto University.
97 The Vax(11/780) time was with the Symbolics Distribution running in
98 Franz.  The Sun(3/160) time in Franz was using our own build of
99 Macsyma based on the `free Franz'.  The Dec-20 time was a distribution
100 by Symbolics, running in Dec-20 Maclisp (very small address space).
102 The GCD switch used was SPMOD.  
104 This is not meant to be a comparison of factoring algorithms, but
105 rather just a simple, easily quantified test of complex polynomial
106 manipulation, which has been found to be a good point of comparison
107 when considering different hardware and software for large algebraic
108 manipulation problems.
110 SYSTEM SOFTWARE:
113 The Explorer was running release 3.0, and the Symbolics release 7.
114 On earlier tests on the TI there was a dramatic improvement.
115 (almost half the times shown).    Although I did the tests
116 carefully at the time, I have not been able to reproduce them
117 with the current world.   The new times for TI are closer to the
118 old times.
120 The Sun's were running versions 3.2
121 to 3.4.  The 11/780 was running 4.3 BSD.
124 COST: 
126 For this type of work the explorer is probably a Good Buy, in that it
127 is the second cheapest of the machines yet is also very fast.  The
128 Sun 3/50 just does not seem to have the memory or memory management
129 capabilities for large problems, so barring possible improvements to
130 the software you would probably not be happy with one for such
131 problems.  The large Suns would be recommended if time sharing is a
132 must.  There are a number of other Unix machines which we just did not
133 have available to run tests on.
136                            Appendix Sun3/50
138 Here is the actual transcript.  You can see how the times varied:
139 For the other machines, the times were rather consistent.  We 
140 have used averages in all cases.
142 (C3) expand((x+y+z)^10)$
143 (C9) factor(d3);
145 Evaluation took 8.20 seconds (17.93 elapsed)
146                                             10
147 (D9)                             (Z + Y + X)
148 (C10) ''c3;
150 Evaluation took 7.98 seconds (16.98 elapsed)
151                                             10
152 (D10)                            (Z + Y + X)
153 (C11) ''c3;
156 GBC invoked
157 GBC finished
158 Evaluation took 13.98 seconds (50.25 elapsed)
159                                             10
160 (D11)                            (Z + Y + X)
161 (C12) ''c3;
163 Evaluation took 8.02 seconds (16.57 elapsed)
164                                             10
165 (D12)                            (Z + Y + X)
166 (C13) ''c3;
169 GBC invoked
170 GBC finished
171 Evaluation took 13.90 seconds (52.20 elapsed)
172                                             10
173 (D13)                            (Z + Y + X)
174 (C14) ''c3;
176 Evaluation took 8.05 seconds (16.65 elapsed)
177                                             10
178 (D14)                            (Z + Y + X)
179 (C15) ''c3;
182 GBC invoked
183 GBC finished
184 Evaluation took 13.90 seconds (56.88 elapsed)
185                                             10
186 (D15)                            (Z + Y + X)
187 (C16) 
188 (C16) expand((x+y+z)^20)$
190 Evaluation took 10.10 seconds (13.20 elapsed)
191 (C17) 1;
192 (D17)                                  1          
193 (C18) factor(d16);
196 GBC invoked
197 GBC finished
199 GBC invoked
200 GBC finished
202 GBC invoked
203 GBC finished
205 GBC invoked
206 GBC finished
207 Evaluation took 63.77 seconds (243.45 elapsed)
208                                             20
209 (D18)                            (Z + Y + X)