[oct-cvs] Oct commit: oct timing2.lisp

rtoy rtoy at common-lisp.net
Thu Oct 11 18:59:06 UTC 2007


Update of /project/oct/cvsroot/oct
In directory clnet:/tmp/cvs-serv8913

Modified Files:
	timing2.lisp 
Log Message:
Correct the timing info.  I accidentally ran the C++ version on a
different (slower) machine.  The results make some sense now.


--- /project/oct/cvsroot/oct/timing2.lisp	2007/10/11 16:29:08	1.1
+++ /project/oct/cvsroot/oct/timing2.lisp	2007/10/11 18:59:05	1.2
@@ -121,27 +121,25 @@
 
 Some test results.  These were all run on a Sun Blade 1500 using a 1.5
 GHz Ultrasparc III.  I used the default configuration when compiling
-qd, and used Sun's C++ compiler.  For the Lisp timing, I used CMUCL.
+qd, and used Sun's C++ compiler with -O.  For the Lisp timing, I used
+CMUCL.
 
 Executive summary:
 
 Test	    Time
 	qd	oct
 ----	-----------
-add	0.036	0.09
-mul	0.117	0.13
-div	0.388	0.29
-sqrt	0.142	0.11
-sin	0.136	0.14
-log	0.231	0.12
+add	0.023	0.09
+mul	0.075	0.13
+div	0.299	0.29
+sqrt	0.105	0.11
+sin	0.115	0.14
+log	0.194	0.12
 
 Times are in sec for the test.  The default number of iterations were
-used.  Some of the results are a bit surprising.  I was expecting the
-C++ code to be faster, and that's the case for add and mul.  But oct
-with CMUCL was faster in div, sqrt, and log.  Note that oct uses a
-different algorithm for log than qd, so that could explain the
-difference.  Note also that CLOS dispatch is included in these timing
-results.  CMUCL's CLOS dispatch is ok, but not great.
+used.  Most of the timings match my expectations, including the log
+test.  Oct uses a different algorithm (Halley's method) which is
+faster (in Lisp) than the algorithm used in qd (Newtwon iteration).
 
 
 -------------------------------------------------------------------------------
@@ -149,45 +147,41 @@
 
 The output from qd_timer -qd -v:
 
-Timing qd_real
---------------
-
 Timing addition...
-n = 100000   t = 0.0362288
+n = 100000   t = 0.0231462
 b = 1.428571e+04
-100000 operations in 0.0362288 s.
-  0.362288 us
+100000 operations in 0.0231462 s.
+  0.231462 us
 
 Timing multiplication ...
-n = 100000   t = 0.11686
+n = 100000   t = 0.0749929
 b = 2.718268e+00
-100000 operations in 0.11686 s.
-  1.168602 us
+100000 operations in 0.0749929 s.
+  0.749929 us
 
 Timing division ...
-n = 100000   t = 0.388279
+n = 100000   t = 0.298858
 b = 0.367881
-100000 operations in 0.388279 s.
-  3.882788 us
+100000 operations in 0.298858 s.
+  2.988580 us
 
 Timing square root ...
-n = 10000   t = 0.141866
+n = 10000   t = 0.105049
 a = 2.821980
-10000 operations in 0.141866 s.
- 14.186575 us
+10000 operations in 0.105049 s.
+ 10.504860 us
 
 Timing sin ...
-n = 2000   t = 0.136080
+n = 2000   t = 0.114943
 a = 3.141593
-2000 operations in 0.136080 s.
- 68.039791 us
+2000 operations in 0.114943 s.
+ 57.471350 us
 
 Timing log ...
-n = 1000   t = 0.230506
+n = 1000   t = 0.193698
 a = -50.100000
-1000 operations in 0.230506 s.
-230.506166 us
-
+1000 operations in 0.193698 s.
+193.697800 us
 The output from CMUCL:
 
 QD> (time-add)




More information about the oct-cvs mailing list